我有一个TextBox。基本上它是一个搜索框,用户在其中输入关键字,然后出现搜索。
我现在有一个按钮,但我想在EnterPress事件上做。我怎样才能做到这一点?
谢谢!
答案 0 :(得分:2)
由于这是ASP.NET,因此当自动按下Enter按钮时,文本框应触发回发。这就是浏览器中表单的情况。
修改强>
您无需执行任何特殊操作即可触发回发。在我阅读您的问题的方式中,您想知道如何在文本框中的Enter按键触发回发时如何对代码隐藏进行搜索。如果这不正确,请告诉我,我将删除此答案。
结束修改
服务器端代码不支持“TextboxEnterPressed”事件。最接近的是TextChanged事件。
如果您还没有这样做,请将在Button_Clicked事件处理程序之外执行搜索所需的任何代码移动到它自己的函数中。然后更改Button_Clicked事件处理程序和Text_Changed事件处理程序以调用相同的函数。
或者你可以用JavaScript写一些东西来处理Enter键,但正如我所说 - 在一个网页中,按一下表格内的文本框中的输入会触发回发,所以你不需要打扰
异常 - 如果这是TextBox设置为“Multiline”的TextBox,它实际上在html输出中生成Textarea。如果是这种情况,您将需要一个JavaScript解决方案。
答案 1 :(得分:1)
将两者放入Panel
并设置DefaultButton
。
答案 2 :(得分:1)
试试这个:
$('#input_text').keyup(function(e) {
if(e.keyCode == 13) {
alert('Enter key was pressed.');// do your stuff here
}
});
答案 3 :(得分:1)
如果是我,我会选择JavaScript,可能有一种方法可以在.NET本身中执行此操作,但这将以通常的.NET方式提交整个表单。
有两个主要的JavaScript框架,我的个人偏好是MooTools,但是这两个学习起来比较困难,但它的好处在于它有一个很好的OOP设计,所以如果你知道OOP而你想学习用Js做更多事情,那么在我看来这是更好的。另一种选择是JQuery,一个很好的框架,更容易学习(虽然根据你的经验和知识可以忽略不计)。
一旦你进行了JavaScript设置,你需要决定如何获取数据,最简单的方法就是使用一个_PostBack调用来调用标准的.Net回发方法,我也听说过那里是一个_ICallBack方法,可用于在没有回发的情况下调用.NET方法,但我个人还没有使用它。
但我的偏好是使用WebService和javascript调用,这将允许您更灵活并返回快速结果,无论是输入还是“当您键入”搜索,如谷歌 - 直接到页面,异步,没有页面重新加载。
如果你给我更多关于你想给用户的反馈意见的数据,我可以提出更好的建议。
是按下按钮还是更先进的东西的简单替代品?