2010-03-03 72 views
4

我使用asp.net C#2008,我需要創建一個搜索文本框,它會顯示下拉值(類似於谷歌搜索); 顯示在下拉列表中的值將是來自SQL 2005數據庫的值(例如,用戶在FirstName上進行搜索時,下拉列表將顯示所有名字,當用戶輸入更多字母時,將顯示所有名字,如果用戶搜索LastName,下拉列表顯示數據庫中的所有LastName值..等等)谷歌喜歡下拉框當用戶搜索

任何想法如何去完成這項任務?

回答

7

您正在爲您尋找自動完成行爲文本框。我建議使用現成的jQuery插件解決方案。

http://docs.jquery.com/Plugins/Autocomplete

+1

這是我用於此實例的解決方案 - 用c#後端實現,返回JSON對象列表。 +1 – 2010-03-03 20:33:12

0

javascript是你的答案。在擊鍵後大約150ms,向您的網站發送請求以獲取匹配值。只要用戶輸入另一個字母,就準備放棄它。在每次擊鍵後嘗試做出響應的價值都很小。

0

這裏沒有內置的服務器控件。你應該實現你自己的。

看看JQuery AutoComplete插件並嘗試使用Ajax回調來實現它。

1

這是針對ASP.NET的解決方案。 Microsoft在Ajax Control Toolkit(自動完成控件)中實現了這一點。這裏的工作示例:

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx

但要確保你瞭解它是如何工作的內部(使用Ajax調用),不只是使用控制盲目。

+0

上述鏈接中的ajax控件相當慢(與google網站相比); – user279521 2010-03-03 20:32:29

+0

原因很少。 Ajax Control Toolkit有一定的開銷,因此您通過緩慢的MS代碼來支付使用的簡單性。還有速度取決於服務器設置,算法,緩存等。你不能只是第一次看比較。 – Vitaly 2010-03-03 21:00:17

2

如果是AutoComplete control,我會推薦檢查ASP.NET AJAX控件工具包的實現。安裝工具包後,您可以擴展標準的ASP WebForm TextBox控件以使用它。