selectedindexchanged in dynamischen Tabellen geht nicht?
-
Hallo. Habe folgendes Problem, welches mich echt zum Verzweifeln bringt. Ich will in eine Tabelle via cell1.Controls. Add(DropDownList) eine Dropdownlist einfügen.
Die DropDownList erhält ihre Werte zuvor aus einer Datenbank. Die DropDownList lässt sich auch wunderbar in die Tabelle einfügen und bekommt auch die Werte. Problem ist jetzt allerdings, dass die selectedindexchange Methode der DropDownlist nicht mehr aufgerufen wird sondern ein Fehler angezeigt wird.Fehlermeldung: "Fehler beim Laden des Ansichtszustands. Die Steuerelementstruktur, in die der Ansichtszustand geladen werden soll, muss mit der Steuerelementstruktur übereinstimmen, die während der letzten Anforderung zum Speichern des Ansichtszustands verwendet wurde. Beim dynamischen Hinzufügen von Steuerelementen müssen die während eines Sendevorgangs hinzugefügten Steuerelemente z.B. in Typ und Position mit den während der ursprünglichen Anforderung hinzugefügten Steuerelementen übereinstimmen. "
Meine Frage ist jetzt, warum meine DropDownListen aufeinmal nicht mehr funktionieren, sobald ich diese in eine Tabelle einbinde. Kann ich, wenn ich Controls verwende nicht mehr mit der selectedchangeindex arbeite?Hier ein paar relvante Codeausschnitte:
protected void AddDynRows(System.Web.UI.Control con1, System.Web.UI.Control con3)
{
// dynamische Tabelle erstellen
int newRowCount = RowCount;
Table t = new Table();
for (int rowCounter = 0; rowCounter < 1; rowCounter++)
{
TableRow r = new TableRow();
r.CssClass = "tablesubline";
newRowCount++;
// erste Zelle mit Label
TableCell c = new TableCell();
c.ID = "Cell" + newRowCount + 1;
c.Controls.Add(con1);
r.Controls.Add(c);
// zweite Zelle mit DropDownList
**TableCell c2 = new TableCell();
DropDownList mydrop = new DropDownList();
mydrop.SelectedIndexChanged += new EventHandler(mydrop_selectedindexchanged);
mydrop.AutoPostBack = true;
Basisabfrage(mydrop);
c2.Controls.Add(mydrop);**c2.ID = "Cell" + newRowCount + 2;
r.Controls.Add(c2);
// dritte Zelle mit Label
TableCell c3 = new TableCell();
c3.Controls.Add(con3);
r.Controls.Add(c3);
// Zelle mit Button
TableCell c4 = new TableCell();
System.Web.UI.WebControls.Button btn = new System.Web.UI.WebControls.Button();
btn.Text = "Row " + newRowCount;
btn.Click += new EventHandler(RowButtonClick);
c4.ID = "Cell" + rowCounter + 3;
c4.Controls.Add(btn);
r.Controls.Add(c4);
t.Controls.Add(r);}
t.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
t.BorderWidth = 1;
this.form1.Controls.Add(t);
RowCount = newRowCount;
}void mydrop_selectedindexchanged(object sender, EventArgs e)
{
rebuildDynRows();
}Wäre echt dankbar für jede Hilfe!
Gruß bungee2002