2008-09-16 13 views
8

Estoy escribiendo un formulario web ASP.Net con algunos controles DropDownList en él. Luego, el usuario cambia el elemento seleccionado en uno de los menús desplegables, ASP.Net no parece manejar el evento SelectedIndexChanged hasta que el formulario se envíe con un clic en el botón 'Enviar'. ¿Cómo hago que mis menús desplegables manejen SelectedIndexChanged al instante?DropDownList no devuelve en SelectedIndexChanged

P.S. Es una pregunta clásica que he respondido muchas veces, pero parece que nadie la ha preguntado antes en stackoverflow.

Respuesta

23

Establecer la propiedad AutoPostback en true hará que se devuelva cuando se cambie la selección. Tenga en cuenta que esto requiere javascript para ser habilitado.

+1

También tenga en cuenta que viewstate debe estar habilitado para el control. – LosManos

3

Establezca la propiedad AutoPostBack de DropDownList en verdadero.

10

Debe establecer la propiedad AutoPostBack de la lista en verdadero.

Además, si está rellenando los contenidos de la lista desplegable del código subyacente (por ejemplo, obtiene el contenido de la lista de una base de datos) - asegúrese de no volver a vincular los datos en cada postback.

A veces las personas quedan atrapadas al vincular el menú desplegable en el evento de carga de página sin ponerlo en un If Not IsPostBack. Esto hará que el evento no se dispare.

Lo mismo ocurre con los repetidores y los eventos ItemCommand.

4

si va a completar la lista desplegable durante la carga de la página, cada vez que la página devuelva se volverá a cargar la lista, lo que anulará su método de devolución de datos. debe asegurarse de cargar la lista desplegable solo si (! Ispostback)

+0

Esta debería haber sido la respuesta, ya que establecer perezosamente AutoPostBack = "true" no siempre funciona, ya que también puede afectar a otros controles. ¡Toda la página está publicada! – Fandango68

+0

¡esta es la verdadera respuesta! ¡Gracias! –

Cuestiones relacionadas