¿Cómo asigno programáticamente un evento al hacer clic a una lista de viñetas que se creó mediante programación?

Intenté escribir un método mediante programación y asignarlo como un método llamado a un evento onclick, pero algo no está bien aquí. No se llama al método.

BulletedList bulletList = new BulletedList();

Agregué elementos a la lista de viñetas usando bulletList.Items.Add(...);

Traté de asignar programáticamente un método bulletList_Click con bulletList.Click += new BulletedListEventHandler(bulletList_Click);

Este es el método que se supone que debe activarse.

void bulletList_Click (remitente del objeto, BulletedListEventArgs e) {// códigos aquí}

preguntado el 08 de noviembre de 11 a las 12:11

¿Está utilizando un IDE como VS o está escribiendo el código manualmente? -

Hola, estoy usando Visual Studio. Además, BulletList se crea mediante programación. -

2 Respuestas

A menos que haya creado una clase especial propia para manejar eventos que probablemente solo esté buscando:

bulletList.Click + = new EventHandler (bulletList_Click);

Edit:
Tienes tu comando ahí correctamente, de hecho. Sin embargo, al leer su comentario anterior de que se crea mediante programación, tengo una actualización:

Para registrar un evento para un objeto que se crea mediante programación, el evento debe crearse y agregarse a un control en la página durante la Page_Init evento. Si esto no sucede, el objeto no se agregará al estado de vista y no se podrá capturar ningún evento.

Editar 2:
Aquí hay un artículo sobre 4GuysFromRolla que me ayudó a lograr esto la última vez que lo necesité. Aquí está el artículo de seguimiento para ello indicando por qué el evento Page_Init es apropiado en función de la necesidad de tener el control en ViewState. He visto en otras partes de otros foros que esto se puede eludir asegurándose de que para cada devolución de datos, los controles se agreguen de manera idéntica a la última vez que se cargó la página, pero no he verificado esa funcionalidad.

respondido 08 nov., 11:18

Hola, estoy recibiendo un Cannot implicitly convert Type 'System.EventHandler' to 'System.Web.UI.WebControls.BulletedListEventHandler' - tommi

Luego use 'System.Web.UI.WebControls.BulletedListEventHandler' en lugar de 'EventHandler', ¿no? - Tipx

Sí. Lo hice, eche un vistazo a mi pregunta anterior, usé un BulletedListEventHandler. - tommi

@csl: agregué una edición basada en uno de sus comentarios. Su código en la pregunta me parece bien, pero es probable que simplemente no se active debido al momento en que se está creando el objeto. - Joel Etherton

Hola, pero ¿qué sucede si BulletedList se crea en otros métodos distintos al Page_Init ¿método? - tommi

¿Ha intentado que el controlador de eventos se genere automáticamente desde la interfaz de arrastrar y soltar de Visual Studio? ¿Como seleccionar el control, seleccionar el evento Click de la lista de eventos a la derecha y luego simplemente escribir el código dentro del controlador generado?

respondido 08 nov., 11:17

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.