2008-10-26 11 views

Respuesta

9

Prueba esto:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" onKeyUp="this.blur();"> 

Con onKeyUp = "this.blur();" el control perderá el foco cuando una tecla esté sin presionar, y eso desencadenará el evento onChange.

+0

por muy buena que sea esta solución, estás matando la funcionalidad, si tienes una lista con 10 ítems, y el usuario decide navegar por el teclado, sale de la lista desplegable cada vez que hace clic arriba o abajo. es posible hacer onKeyUp = "this.blur(); this.focus();" ? – Sander

+0

aunque esto no funcionó para mí. Pero vale la pena intentarlo y necesito tomar nota :) – Shinigamae

0

Creo que tienes que dejar el control si estás usando el teclado para disparar el evento.

+0

¿Hay alguna forma de disparar esto en la flecha arriba/abajo? – leora

0

Si desea que funcione con las teclas de flecha, debe usar el evento del lado del cliente, onKeyDown.

+0

puede darme un ejemplo de cómo esto funcionaría. . y cómo esto puede luego ser devuelto al servidor para las acciones – leora

10

intente configurar la propiedad del control DropDownList la 'AutoPostBack' a 'cierto'.

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"> 
</asp:DropDownList> 

Ver ListControl.AutoPostBack Property on MSDN para obtener más información

Obtiene o establece un valor que indica si una devolución de datos al servidor se produce automáticamente cuando el usuario cambia la selección de la lista.

+0

¡Gracias! ¡Eso funcionó para mí! – John

Cuestiones relacionadas