ASPX文本框:返回按键时执行方法

时间:2008-10-23 14:25:47

标签: .net asp.net textbox

我有一个没有提交按钮的搜索框,我需要能够按Enter键然后执行一个方法,我该怎么做?

3 个答案:

答案 0 :(得分:4)

你也可以用CSS做一些简单的事情:

<asp:Panel DefaultButton="myButton" runat="server">
    <asp:TextBox ID="myTextBox" runat="server" />
    <asp:Button ID="myButton" runat="server" onclick="myButton_Click" style="display: none; "  />
</asp:Panel>

根据您的实施和周围的控制,该小组可能是必要的,也可能不是必需的,但这可以为我做回传。

答案 1 :(得分:2)

您可以向页面添加隐藏按钮,并将方法连接到该按钮的click事件。然后在文本框中按Enter键时添加一小段javascript以触发该按钮的回发操作。

this.myTextBox.Attributes.Add(
    "onkeydown", 
    "return keyDownHandler(13, 'javascript:" 
     + this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27") 
     + "', event);");

(您也可以使用Windows.Forms.Keys替换硬编码的13。如果您更喜欢更易于阅读的版本,请输入。)

其中keyDownHandler是这样的JavaScript函数:

function keyDownHandler(iKeyCode, sFunc, e) { 
    if (e == null) { 
        e = window.event; 
    } 
    if (e.keyCode == iKeyCode) { 
        eval(unescape(sFunc)); return false; 
    } 
}

请注意,这是基于DotNetNukeClientAPI web utility

的实施

答案 2 :(得分:0)

使用TextChanged事件,并将AutoPostBack属性设置为true。