ASP .Net Textbox Textchanged事件

时间:2012-02-14 14:44:22

标签: asp.net textbox autopostback

我有一个网页。我会在桌面上显示记录,比如我的页面中的学生。我查询所有学生并在网格中显示它们。我想使用文本框来过滤datagridview结果。例如,如果用户在文本框中键入a,则网格将仅显示其姓名中包含“a”的学生。我想在编辑文本框的同时刷新网格。

我已将textbox的autopostback属性设置为true,并在textbox的textchanged事件中刷新网格。但textchanged事件仅在文本框失去焦点后才会触发。用户只输入一个字符后如何才能触发它?感谢。

5 个答案:

答案 0 :(得分:4)

您必须使用onKeyDown事件。但是,我建议您使用ASP.NET AJAX或jQuery使用Ajax加载结果。

以下是asp.net中的一个示例:http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

来自Code项目的另一个: http://www.codeproject.com/Articles/38803/Google-Like-Search-TextBox

答案 1 :(得分:2)

如果您想要使用特定方法,则可能需要显示一些现有代码。否则你会让一个人告诉你他们会这样做的方式。

现在看起来像这样吗?

<asp:Textbox id="myTextbox" runat="server" onChange="txtChanged" AutoPostBack="true"/>

public void txtChanged(object sender, EventArgs e)
{
    //Get text from textbox
    string text = ((TextBox)sender).Text;

    //Do what ever it is you want to do to edit the text
    text = text.ToUpper();

    //Update the other textbox with this text
    txtMyText2.Text = text;
}

答案 2 :(得分:1)

我认为最好也是最干净的方法是使用Rad Controls,下面是一个如何做的示例: http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?product=grid

答案 3 :(得分:0)

您可以使用PicNet在客户端而不是服务器中执行此操作,以获得更好的用户体验。你可以在这里找到它http://www.picnet.com.au/resources/tablefilter/demo.htm请记住Gridview是一个HTML表格,因此你可以自由地使用这个jQuery插件。

祝你好运!

答案 4 :(得分:0)

事件TextChanged仅在您向服务器发送请求时触发。如果您想在文本框内的文本发生更改时启动事件或创建函数,请使用OnKeyDown事件(与Schiavini一起使用)。