//aspx.cs
usercontrol.myObject = myObject;
//...
//ascx.cs
myObject.someProperty = "12345";
//jetzt muss myObject.someProperty in der ASPX den Wert "12345" haben
Das Property sieht im UserControl so aus:
public Type myObject
{
get
{
if (ViewState["myObject"] != null)
return (Type) ViewState["myObject"];
return bla; // default value
}
set
{
ViewState["myObject"] = value;
}
}
Jetzt werden Properties dieses Objektes im ASCX verändert und müssen sich auch auf myObject in der ASPX durchschlagen. Wie stelle ich das an und ist das überhaupt ne gute Idee?
ich habe eine ganz normale ASPX Seite vorliegen. Ich möchte jetzt einen kleinen Teil daraus in einem UserControl unterbringen. Der Teil bestet aus einer DropDown, einem Grid und einem Button.
Das Problem an der Sache ist, dass im ItemDataBound event des Grids sowas gemacht wird:
Label someLabel = e.Item.FindControlRecursive("LB_SomeLabel") as Label;
Wenn ich das Grid im UserControl haben will, muss ich ja auch die ItemDataBound Methode mitnehmen. Allerdings findet er dann das Label (und einige andere Controls) nicht mehr im UserControl, da es sich um eine Label von der ASPX handelt, in welche ich dann das USerControl einbinde. Gibt es hier eine elegante Lösung? Der Grund, warum die Controls im ItemDataBound geladen werden, ist der, dass sie entsprechend des ListItemType ausgeblendet werden/angezeigt werden.
Hallo, gibt es eine Möglichkeit, die Designdatei zu refreshen? Habe oft das Problem, dass ich Controls hinzufüge, die dann aber in der Designdatei nicht vorhanden sind. Speichern hilft nix.
Ich muss es aber in der Codebehind machen, da es eben entsprechend von Konditionen mal da sein muss und mal nicht. Kann ich den Style auch in der Codebehind setzen?
Hallo, ich habe auf eminer aspx Seite ein Textfeld, welches ich so auf unsichtbar setze:
field.visible = false;
Auf der gleichen Seite ist auch eine DropDown, welche bei IndexChange eine JavaScript Methode aufruft, die so auf das Textfeld zugreift:
document.forms[0].ctl00_Content_TX_field.value
Hier erhalte ich dann allerdings die Meldung "document.form[0] is Null or Not an Object", was wohl auch klar ist, da es ja nicht mehr da ist. Wie könnte ich das wohl anders lösen?
Hallo, kann man irgendwie nach Werten in der Schnellüberwachung suchen? Also sagen wir mal, ich Suche nach dem Wert von "NodeName", kann ich das dann irgendwo eingeben?
for(int i = 0; i < 20; i++)
{
methode1();
}
public void methode1()
{
methode2();
}
public void methode2()
{
string str = "test";
str += "13fsdfsdf";
str += "13fsdfsdf";
str += "13fsdfsdf";
str += "13fsdfsdf";
}
Macht so natürlich keinen Sinn, ist aber auch nur ein grober Ausschnitt. Man sagt ja, in Schleifen nutzt man den StringBuilder, wäre es aber jetzt hier trotzdem sinnvoll?
Doch, das muss so, ist nur ein grobes Beispiel...der betrag wird in Wirklichkeit mit den Daten in class2 berechnet. Class1 und Class2 sind nicht gleich.
foreach(Class1 class1 in class1List)
{
foreach(Class2 class2 in class2List)
{
class1.betrag = class2.betrag;
}
}
Schaue ich mir jetzt die class1List an, dann ist der Betrag unverändert. Class1 und Class2 sind meine Klassen und die Listen jeweils generische Listen mit Typen von entweder Class1 oder Class2.
Hallo sitze gerade an dem Problem, den letzten Tag der letzten X Monate zu finden. Meine Idee war es, den ersten Tag zu finden und davon dann einen Tag abzuziehen. Klappt aber nicht wirklich, weil statt dem 31.12.2009, der 30.12.2009 rauskommt. Seht Ihr den Fehler?
public static List<DateTime> GetLastDayOfPreviousMonths(int howManyMonthsBack)
{
DateTime now = DateTime.Now;
int month = now.Month;
int year = now.Year;
var firstDay = new DateTime();
var dateList = new List<DateTime>();
for (int i = 1; i ≤ howManyMonthsBack; i++)
{
firstDay = new DateTime(year, month, 1);
DateTime lastDay = firstDay.AddDays(i*-1);
dateList.Add(lastDay);
month = firstDay.AddMonths(-1).Month;
year = firstDay.AddMonths(-1).Year;
}
return dateList;
}
Könnte gehen, hatte noch eine andre Idee. Ich mache eine Methode, mit dem Parameter EventArgs e, anstelle der speziellen Typen. Allerdings gibts da woanders Probleme:
private static void SetSomething(EventArgs e, bool enabled)
{
EventArgs eventType = null;
if(e is DataGridCommandEventArgs)
eventType = (DataGridCommandEventArgs)e;
if (e is DataGridItemEventArgs)
eventType = (DataGridItemEventArgs)e;
var test= (SomeType)(eventType.Item.Cells[0].FindControl("Control")); // hier kennt er dann Item nicht
}
Sollte doch so funzen? Die BindGrid Methode funktioniert sonst bestens, liegt das noch an irgendwelchen Flags? EnableViewState vom Grid ist auf "True".
Hallo, ich habe 2 Methoden, die sind nur von den Parametern her unterschiedlich:
private static void SetSomething(DataGridCommandEventArgs e, bool enabled)
{
//...
var test= (SomeType)(e.Item.Cells[0].FindControl("Control"));
//...
}
private static void SetSomething(DataGridItemEventArgs e, bool enabled)
{
//...
var test= (SomeType)(e.Item.Cells[0].FindControl("Control"));
//...
}
Der einzigste Unterschied ist also der erste Parameter (DataGridCommandEventArgs oder DataGridItemEventArgs). Wie stellt man das elegenater an? Der Code innerhalb der Methode ist ja doppelt.