Cómo obtener un identificador para un ImageButton dinámico en una devolución de datos panel de Ajax

StackOverflow https://stackoverflow.com/questions/866258

Pregunta

escribo un ImageButton a una celda de tabla en una nueva fila cuando un usuario selecciona un elemento de una lista:

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);

Cuando se hace clic en el nuevo ImageButton, me parece que no puede obtener un identificador para él. Lo veo en caso Page_PreRender, donde también recargar la tabla en cada devolución de datos.

string returnData = Request.Form.ToString();

pero iteración a través de la forma controla imágenes:

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

no lo encuentra. Puedo encontrarlo si pongo manualmente en una:

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

en el Load y luego agarrarlo en el evento click:

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

sino porque hay que se agregan nuevas filas y se eliminan, esto se pone bastante feo mediante programación. Estoy pensando que debe haber una solución elegante para la creación ImageButton dinámica y recuperación sobre la marcha de código del lado del servidor. He hecho un montón de cavar, pero éste me está haciendo campaña.

Gracias de antemano ...

¿Fue útil?

Solución

Si va a crear controles dinámicos durante la fase de manejo de eventos del ciclo de vida de página (por ejemplo, en el caso el elemento seleccionado), entonces el control se ha ido en la siguiente devolución de datos.

Para controles dinámicos a estar registrados en ViewState, tienen que ser creado en la fase de inicialización del ciclo de vida del evento.

Además, usted dice que está iteración a través de los controles del formulario ... cuando se está agregando el ImageButton a celdas de la tabla. ¿Está descendiendo de forma recursiva la jerarquía de control para buscar la ImageButton?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top