我有一个没有提交按钮的搜索框,我需要能够按回车然后执行一个方法,我该怎么做?
Shahin
问问题
4368 次
3 回答
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>
该面板可能需要也可能不需要,具体取决于您的实现和周围的控件,但这对我有效并且可以回发。
于 2008-10-23T16:16:50.127 回答
2
您可以在页面中添加一个隐藏按钮,并将您的方法连接到该按钮的单击事件。然后添加一点 javascript 以在您在文本框中按 enter 时触发该按钮的回发操作。
this.myTextBox.Attributes.Add(
"onkeydown",
"return keyDownHandler(13, 'javascript:"
+ this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27")
+ "', event);");
(您也可以用Windows.Forms.Keys .Enter替换硬编码的 13 ,如果您更喜欢更易于阅读的版本。)
其中 keyDownHandler 是这样的 JavaScript 函数:
function keyDownHandler(iKeyCode, sFunc, e) {
if (e == null) {
e = window.event;
}
if (e.keyCode == iKeyCode) {
eval(unescape(sFunc)); return false;
}
}
请注意,这是基于DotNetNuke的ClientAPI Web 实用程序的实现。
于 2008-10-23T16:10:09.250 回答
0
使用 TextChanged 事件,并将 AutoPostBack 属性设置为 true。
于 2008-10-23T14:29:24.073 回答