我使用asp.net C#2008,我需要創建一個搜索文本框,它會顯示下拉值(類似於谷歌搜索); 顯示在下拉列表中的值將是來自SQL 2005數據庫的值(例如,用戶在FirstName上進行搜索時,下拉列表將顯示所有名字,當用戶輸入更多字母時,將顯示所有名字,如果用戶搜索LastName,下拉列表顯示數據庫中的所有LastName值..等等)谷歌喜歡下拉框當用戶搜索
任何想法如何去完成這項任務?
我使用asp.net C#2008,我需要創建一個搜索文本框,它會顯示下拉值(類似於谷歌搜索); 顯示在下拉列表中的值將是來自SQL 2005數據庫的值(例如,用戶在FirstName上進行搜索時,下拉列表將顯示所有名字,當用戶輸入更多字母時,將顯示所有名字,如果用戶搜索LastName,下拉列表顯示數據庫中的所有LastName值..等等)谷歌喜歡下拉框當用戶搜索
任何想法如何去完成這項任務?
您正在爲您尋找自動完成行爲文本框。我建議使用現成的jQuery插件解決方案。
javascript是你的答案。在擊鍵後大約150ms,向您的網站發送請求以獲取匹配值。只要用戶輸入另一個字母,就準備放棄它。在每次擊鍵後嘗試做出響應的價值都很小。
這裏沒有內置的服務器控件。你應該實現你自己的。
看看JQuery AutoComplete插件並嘗試使用Ajax回調來實現它。
這是針對ASP.NET的解決方案。 Microsoft在Ajax Control Toolkit(自動完成控件)中實現了這一點。這裏的工作示例:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx
但要確保你瞭解它是如何工作的內部(使用Ajax調用),不只是使用控制盲目。
上述鏈接中的ajax控件相當慢(與google網站相比); – user279521 2010-03-03 20:32:29
原因很少。 Ajax Control Toolkit有一定的開銷,因此您通過緩慢的MS代碼來支付使用的簡單性。還有速度取決於服務器設置,算法,緩存等。你不能只是第一次看比較。 – Vitaly 2010-03-03 21:00:17
如果是AutoComplete control,我會推薦檢查ASP.NET AJAX控件工具包的實現。安裝工具包後,您可以擴展標準的ASP WebForm TextBox控件以使用它。
這是我用於此實例的解決方案 - 用c#後端實現,返回JSON對象列表。 +1 – 2010-03-03 20:33:12