Pregunta

Estoy creando un explorador de archivos en ASP.Net pero me he encontrado con un problema que creo se relaciona con el cableado de eventos en controles dinámicos. Explicaré lo que hace mi código aquí:

Cuando se carga mi página (OnLoad), llamo a un método (createStuff ()) que crea una serie de botones de enlace (que representan carpetas en un directorio actual) que están conectados a un evento que cambia el directorio actual al que está asociado con el botón de enlace.

Dado que se activa un evento linkbutton-click-click después de que se llama OnLoad (y el directorio actual, por lo tanto, se cambia por primera vez después de la carga), los botones de enlace no se actualizan para reflejar el nuevo directorio actual (se crean antes de cambiar el directorio actual por el clic-evento). Por lo tanto, también llamo a createStuff () en OnLoadComplete, lo que hace que los botones de enlace se actualicen y reflejen las carpetas en el nuevo directorio actual.

SIN EMBARGO (y este es mi problema) parece que el cableado del evento (Click + = new EventHandler (changeDirectory)) que hago en createStuff () realmente no funciona cuando se llama al método en OnLoadComplete (OnLoadComplete se llama después se ha activado un evento linkbutton-click-click). El resultado es que, si bien la propiedad de texto de los botones de enlace refleja las carpetas en el nuevo directorio, hacer clic en los botones de enlace no activa el evento.

¿Cómo puedo solucionar este problema? Intenté volver a cablear los eventos en los LinkButtons en OnLoad pero el mismo resultado.

Gracias de antemano

Simon, Dinamarca

¿Fue útil?

Solución

Establezca la propiedad ID de LinkButton de manera coherente.

Dos causas comunes de este comportamiento son (1) controladores de eventos faltantes y (2) propiedades de ID faltantes. Dado que está seguro de que su controlador de eventos se adjuntará durante OnLoad , es probable que las propiedades de ID faltantes sean las culpables.

Cuando un usuario hace clic en su LinkButton en el cliente, se envía un PostBack al servidor que nombra el LinkButton por ID. Si no se asegura de que su control tenga la misma ID entre PostBacks, es posible que su controlador de eventos no se active.

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