2012-02-14 145 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合作)。

相關問題