2012-02-14 109 views
4

我有一个网页。我显示表格中的记录,可以说,我的网页中的学生。我查询所有的学生并以网格显示。我想使用一个文本框来过滤datagridview结果。例如,如果用户在文本框中键入a,网格将只显示名字中包含“a”的学生。我想在编辑文本框的同时刷新网格。ASP .Net Textbox Textchanged事件

我有文本框的AutoPostBack属性设置为true,和我刷新文本框的框TextChanged电网event.But TextChanged事件触发后,方可文本框失去焦点。在用户键入一个字符后,如何才能让它闪烁?谢谢。

+1

你应该使用AJAX,othewise ..任何char类型火灾后回到事件..不好.. – 2012-02-14 14:47:47

+1

你肯定希望引起每一个按键后回传?即使将所有内容都包含在更新面板中,用户仍然需要等待页面刷新才能键入另一个字符。 – rie819 2012-02-14 14:49:03

+0

有上[这里](http://stackoverflow.com/questions/1009086/how-to-make-an-asp-net-textbox-fire-its-ontextchanged-event-fire-in-不少类似的问题an-ajax-upd) – 2012-02-14 14:54:47

回答

4

您必须使用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

+0

编辑添加链接 – Schiavini 2012-02-14 14:50:26

+0

抱歉,我没有提及。我的控件已经在updatepanel中。文本框没有onKeyDown。我怎么能实现它。谢谢 – 2012-02-14 14:52:02

+0

只需将其添加为文本,asp.net将无法识别并将其直接添加到HTML – Schiavini 2012-02-14 15:09:33

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; 
} 
+0

是的,我做了几乎相同的事情。另外,我还在我的文本框中使用了一个autocomplextxtender。谢谢。 – 2012-02-14 14:57:13

+0

这可能是你的问题,我看到很多关于[AutoCompleteExtender会抑制你的TextChanged事件]的帖子(http://forums.asp.net/t/1022600.aspx/1) – 2012-02-14 15:16:00

+0

如果你有钱Telerik通常是你最好的选择,但他们并不便宜。虽然设置并不总是很容易,但也有一定程度的复杂性,它也会失败。还有其他免费的项目,有很好的控制你可以使用。 – 2012-02-14 15:19:35

0

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

祝你好运!

1

我认为最好,最干净的方法是使用拉德控制,这里是如何做到这一点的例子: http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?product=grid

+0

好吧,我想我会用这个rad控制。 telerik的控制似乎更加整洁。 javascript的工作似乎对我来说似乎需要更多的工作,因为我会使用数据绑定等我想这将是很难做到这一点与JS。 – 2012-02-15 14:06:03

+0

是的,它是非常整洁,容易和记录。如果您需要任何帮助,请与我联系。 – 2012-02-16 07:22:35

0

,当你向服务器发送请求的事件TextChanged仅火灾。如果您想要在文本框内的文本发生变化时启动活动或制作功能,请使用OnKeyDown活动(与Schiavini合作)。

相关问题