使用Enter键按事件的TextBox

时间:2011-03-25 21:22:10

标签: c# asp.net textbox

我有一个TextBox。基本上它是一个搜索框,用户在其中输入关键字,然后出现搜索。

我现在有一个按钮,但我想在EnterPress事件上做。我怎样才能做到这一点?

谢谢!

4 个答案:

答案 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,一个很好的框架,更容易学习(虽然根据你的经验和知识可以忽略不计)。

MooTools

JQuery

一旦你进行了JavaScript设置,你需要决定如何获取数据,最简单的方法就是使用一个_PostBack调用来调用标准的.Net回发方法,我也听说过那里是一个_ICallBack方法,可用于在没有回发的情况下调用.NET方法,但我个人还没有使用它。

但我的偏好是使用WebService和javascript调用,这将允许您更灵活并返回快速结果,无论是输入还是“当您键入”搜索,如谷歌 - 直接到页面,异步,没有页面重新加载。

如果你给我更多关于你想给用户的反馈意见的数据,我可以提出更好的建议。

是按下按钮还是更先进的东西的简单替代品?