5

我有一个网页。我在我的页面中显示表格中的记录,比如说,学生。我查询所有学生并在网格中显示他们。我想使用一个文本框来过滤 datagridview 结果。例如,如果用户在文本框中键入 a,则网格将仅显示他/她的名字中有“a”的学生。我想在编辑文本框的同时刷新网格。

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

4

5 回答 5

3

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

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

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

于 2012-02-14T14:47:37.157 回答
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;
}
于 2012-02-14T14:49:34.237 回答
1

我认为最好和最干净的方法是使用 Rad Controls,这里有一个如何做到这一点的例子:http: //demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?产品=网格

于 2012-02-14T15:08:18.153 回答
1

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

于 2013-08-16T14:19:21.823 回答
0

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

祝你好运!

于 2012-02-14T15:05:18.747 回答