2008-10-23 57 views
0

我有一个搜索框,没有提交按钮,我需要能够击中输入,然后执行一个方法,我该怎么做?ASPX Textbox:执行方法返回按键

+0

这是客户端方法还是服务器端方法? – Tom 2008-10-23 14:31:29

+0

嗨,它需要是服务器端,没有JavaScript – Tablet 2008-10-23 14:34:28

回答

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> 

面板可能是也可能不是必要的,但这个工程并执行回发我。

0

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

+0

这只会把一个字符放在那里,并点击文本框,有什么办法来防止这种事件? – Tablet 2008-10-23 14:32:12

2

您可以在页面上添加一个隐藏按钮,并将您的方法连接到该按钮的单击事件。然后添加一小段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的实施。