我有一个网页。我会在桌面上显示记录,比如我的页面中的学生。我查询所有学生并在网格中显示它们。我想使用文本框来过滤datagridview结果。例如,如果用户在文本框中键入a,则网格将仅显示其姓名中包含“a”的学生。我想在编辑文本框的同时刷新网格。
我已将textbox的autopostback属性设置为true,并在textbox的textchanged事件中刷新网格。但textchanged事件仅在文本框失去焦点后才会触发。用户只输入一个字符后如何才能触发它?感谢。
答案 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一起使用)。