2011-08-27 22 views
6

Mi usercontrol de inicio de sesión tiene dos cuadros de texto y un botón de enlace.¿Cómo hago un formulario para enviar con un LinkButton?

<asp:TextBox id="tbUserName" runat="server" size="10" /> 
<asp:TextBox id="tbPassword" runat="server" TextMode="Password" size="10" /> 

<asp:LinkButton Text="login" CssClass="submit" runat="server" ID="lbLogin" OnClick="btnLogin_OnClick" /> 

quisiera llamar la "función btnLogin_OnClick cuando alguien empuja entrar en tbUsername o tbPassword.

¿Cómo se hace esto?

Respuesta

13

He aquí un buen truco:

<asp:Panel ID="pnlLogon" runat="server" DefaultButton="lbLogin" Width="100%" > 
     <asp:TextBox id="tbUserName" runat="server" size="10" /> 
     <asp:TextBox id="tbPassword" runat="server" TextMode="Password" size="10" /> 
     <asp:LinkButton Text="login" CssClass="submit" runat="server" ID="lbLogin" OnClick="btnLogin_OnClick" /> 
</asp:Panel> 

Al envolver los cuadros de texto en un panel y configurar DefaultButton del Panel en su LinkButton, cualquier Intro en el cuadro de texto dentro del panel hará que LinkButton Haga clic para pasar.

+0

¡Gracias! Esto funciona en IE y Firefox pero no en Chrome. ¿Algunas ideas? – Nate

+0

Tal vez debido a esto? http://kpumuk.info/asp-net/using-panel-defaultbutton-property-with-linkbutton-control-in-asp-net/ – Mrchief

+0

Brillante, tuve que seguir las instrucciones en el enlace de arriba para que funcione en safari. Gracias. – Nate

0

// código subyacente

protected void btnLogin_OnClick(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
     // process your form 
    } 
} 
+0

Esa función no recibe una llamada cuando alguien presiona enter en tbUserName o tbPassword. Solo se llama al hacer clic. – Nate

+0

Lo siento Nate, leí mal la pregunta. O el método de Mrchief debería funcionar. – IrishChieftain

Cuestiones relacionadas