Pregunta

Saludos, es de esperar que haya una solución simple para este problema complejo. Por favor, corrija cualquier idea errónea que tenga en el camino.  Hace un tiempo escribí un GrivView con capacidad de columna dinámica. Las columnas se agregan en el evento de la página OnInit para que se agreguen ANTES de que se aplique viewstate. Se vuelven a aplicar en cada publicación en esta sección de la página para que, cuando se aplique el estado de visualización, se mantengan los cambios que el usuario ha realizado y no se haya comprometido con la base de datos. También es necesario si no quieres que tu árbol de control del estado de visualización se desincronice y haga explotar todo.

Mi problema actual es que ahora tengo la tarea de hacer esencialmente lo mismo en el que las columnas serán diferentes en función de una lista desplegable (volveré a crear GridView si el ddl cambia, y los usuarios perderán todo el trabajo con un advertencia). ¿Cómo puedo obtener la ID que está seleccionada en la Lista desplegable en el evento OnInit? Tengo entendido que cuando el usuario cambia el valor del ddl en el lado del cliente, un JavaScript & # 8220; __ doPostBack & # 8221; llamada se dispara. La solicitud de la página se envía al servidor, pero cuando el nuevo valor está presente en el controlador de eventos, he pasado el punto en el que necesito agregar las columnas.

Vi algo que pensé que era prometedor cuando la gente estaba tratando de determinar qué control causó una publicación, pero ese código se basa en la página.Solicitud.Parámetros.Get (" __ EVENTTARGET "); y page.Request.Form que están vacías.

Si observo el estado de la sesión, intente & # 8216; enviar & # 8217; ¿La ID utilizando la manipulación del lado del cliente, o algún otro método (tal vez una forma astuta de buscar en el estado de vista que me falta)?

¡Gracias por cualquier idea!

¿Fue útil?

Solución

El valor enviado de un control está disponible en la colección de Solicitud [] incluso si parece que su formulario aún no se ha reconstruido.

Simplemente debería poder obtener el valor seleccionado durante Init () utilizando lo siguiente:

string value = Request["myDropDownID"];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top