2012-06-14 10 views
7

Encontré un pequeño problema con una aplicación web ASP.NET.Enlace de ASP.NET Entrar la clave con los botones?

Tengo un par de botones en mi página a los que quiero acceder presionando mi tecla Intro (Dependiendo de cuál TextBox esté enfocado).

Google me ayudó, pensé, pero no.

Esto es lo que encontré:

tbEmail.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('" + btRegister.UniqueID + "').click();return false;}} else {return true}; "); 

Esto no parece funcionar, todavía se presiona un botón que no quiero ser presionado en este momento.

¿Alguna sugerencia?

Respuesta

21

Parece que estás usando formularios web.

Puede envolver lo que está haciendo dentro de un Panel y establecer la propiedad DefaultButton dentro del panel.

<asp:Panel ID="LoginPanel" runat="server" DefaultButton="btLogin"> 
    <asp:TextBox ID="txtUser" runat="server" /> 
    <asp:TextBox ID="txtPass" runat="server" /> 
    <asp:Button ID="btLogin" runat="server">Login</asp:Button> 
</asp:Panel> 

Cuando el usuario ha introducido datos en cualquiera txtUser y txtPass y luego pulsa la tecla Intro, se activarán el botón btLogin.

+0

¡Gracias por la información detallada, realmente me ayudó! – James

+0

Estaba modificando la página stock 'Login.aspx' y funciona igual de bien allí también. Al botón le faltaba la propiedad ID y CommandName así que no estaba seguro de si funcionaría. – strider

3

Usar jQuery para esto es mucho más fácil. Enlace al evento keypress.

+1

Estoy de acuerdo. jQuery encapsula todos esos detalles desagradables y es un regalo del cielo. – Jeremy

+1

¡Gracias por la respuesta, vamos a usar esto en el futuro con seguridad! – James

4

No intente y use el JavaScript - ponga su formulario dentro de un <asp:Panel> y configure la propiedad DefaultButton para que sea la identificación de su botón.

0

Se puede utilizar un evento de pulsación de tecla para cada cuadro de texto que hacer cosas diferentes .. así:

private void a_keyPress(object sender, KeyPressEventArgs e) 
{ 
    RadTextBox myBox = (RadTextBox)sender; 

    if (e.KeyChar == (char)Keys.Return) 
    { 
     if (myBox.ID == "textbox1") 
     // then do stuff... 
    } 
    else if //do stuff... 
} 
Cuestiones relacionadas