当光标位于usercontrol中的文本框内时,如何设置按“Enter”的事件

时间:2010-10-27 20:45:20

标签: asp.net events user-controls

我有一个用于搜索的usercontrol。有一个文本框和一个搜索按钮。单击该按钮时,将调用搜索方法。我希望当光标位于文本框内并按下回车键时也会发生搜索。

我第一次想到如何做到这一点可能是添加事件来提交表单标签的动作。但是,此usercontrol没有表单标记。

有人有任何建议吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我会用JavaScript来做:附加一个查找键码13的OnKeyPress处理程序,并调用form.submit:

function enterPressed(evn) {
if (window.event && window.event.keyCode == 13) {
  document.forms[0].submit;
} else if (evn && evn.keyCode == 13) {
  document.forms[0].submit;
}
}
document.onkeypress = enterPressed;

答案 1 :(得分:0)

默认情况下,如果用户在文本框中单击“输入”,则会发布表单,从而触发回发。因此:

在ontextchanged事件中实现此目的。 这是关于最简单的代码示例:

 <asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
 <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

和代码隐藏:

protected void Button1_Click(object sender, EventArgs e)
{
    SomeFunctionForHandlingEvents();
}
 protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    SomeFunctionForHandlingEvents();
}
private void SomeFunctionForHandlingEvents()
{
     Label1.Text = "event called";
}

答案 2 :(得分:0)

您是在网页上运行还是在本地运行?在文本框中按Enter键通常会将您移动到本地的下一个字段,因此您可以使用OnLeave事件(我认为这是它的名称)。在网页上,Enter通常会提交您想要的表格。从TextChanged事件中获取新值。