2012-06-14 9 views
7

Tôi tình cờ gặp một vấn đề nhỏ với ASP.NET Web Application.Liên kết ASP.NET Nhập phím bằng các nút?

Tôi có một vài nút trên trang của mình mà tôi muốn truy cập bằng cách nhấn phím Enter (Tùy thuộc vào đó TextBox được lấy nét).

Googled đã giúp tôi, tôi nghĩ, nhưng không.

Đây là những gì tôi thấy:

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}; "); 

này dường như không làm việc, nó vẫn nhấn một nút mà tôi không muốn bị ép tại thời điểm này.

Mọi đề xuất?

Trả lời

21

Dường như bạn đang sử dụng Web Forms.

Bạn có thể bọc những gì bạn đang làm bên trong một Panel và đặt thuộc tính DefaultButton bên trong bảng điều khiển.

<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> 

Khi người dùng đã nhập dữ liệu trong cả hai txtUsertxtPass và sau đó nhấn phím Enter, họ sẽ kích hoạt nút btLogin.

+0

Cảm ơn thông tin chi tiết, thực sự đã giúp tôi! – James

+0

Tôi đã sửa đổi trang 'Login.aspx' và nó cũng hoạt động tốt ở đó. Nút bị thiếu thuộc tính ID và CommandName là như vậy là không chắc chắn nếu nó sẽ làm việc. – strider

3

Sử dụng jQuery cho việc này dễ dàng hơn nhiều. Liên kết với sự kiện keypress.

+1

Tôi đồng ý. jQuery đóng gói tất cả những chi tiết khó chịu và là một ơn trời. – Jeremy

+1

Cảm ơn câu trả lời, sẽ sử dụng điều này trong tương lai để chắc chắn! – James

4

Không thử và sử dụng JavaScript - đặt biểu mẫu của bạn bên trong một số <asp:Panel> và đặt thuộc tính DefaultButton làm id của nút của bạn.

0

Bạn có thể sử dụng một sự kiện phím nhấn cho mỗi textbox mà sẽ làm những việc khác nhau .. vậy:

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... 
}