Frage

Ich schreibe eine Image zu einer Tabellenzelle in einer neuen Zeile, wenn ein Benutzer ein Element in einer Liste auswählt:

ImageButton imgbtnRemove = new ImageButton();
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.ImageUrl = items.remove;
imgStatus.AlternateText = "Remove";
tRow.Cells[3].Controls.Add(imgbtnRemove);

Wenn die neue Imagebutton geklickt wird, kann ich nicht scheinen, einen Griff, um es zu bekommen. Ich sehe es in Page_PreRender Fall, wo ich auch die Tabelle auf jedem Postbacks laden.

string returnData = Request.Form.ToString();

, sondern durch die Form Iterieren steuert Bilder:

if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)

nicht findet. Ich kann es finden, wenn ich manuell in einem setzen:

imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);

in der Page_Load und dann in dem Click-Ereignisse greifen:

switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...

, sondern weil es neue Zeilen hinzugefügt und gelöscht werden, wird dies eher programmatisch hässlich. Ich denke, es muss im laufenden Betrieb von Server-seitigen Code eine elegante Lösung für dynamische Imageerstellung und den Abruf sein. Ich habe eine Menge getan zu graben, aber dies mir stumping.

Vielen Dank im Voraus ...

War es hilfreich?

Lösung

Wenn Sie die Erstellung dynamische Kontrollen während der Event-Handling-Phase des Lebenszyklus Seite (zum Beispiel in dem Punkt ausgewählten Ereignisse), dann wird die Steuerung auf den nächsten Postbacks verschwunden sein.

Um für die dynamische Steuerung mit Viewstate registriert werden, müssen sie in der Init-Phase des Ereigniszyklus geschaffen werden.

Auch Sie sagen, Sie durch die Form der Kontrollen sind Iterieren ... wenn Sie die Imagebutton auf die Tabellenzellen hinzufügen. Sind Sie rekursiv die Steuerung Hierarchie absteigend für das Image aussehen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top