[转]轻松掌握Ajax.net系列教程十五:使用AutoCompleteExtender
本章介紹AutoCompleteExtender的使用方法。用過Google的朋友都會發現,當我們在搜索框輸入關鍵字的時候,Google會自動列出相關關鍵字提示。那么用Ajax.net也能做到么?答案是:Of course!
第一步:建立AJAX Control Toolkit Website
本例子只需要一個TextBox控件和一個AutoCompleteExtender組件。拖進設計界面后代碼如下所示:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"> </ajaxToolkit:AutoCompleteExtender>第二步:建立WebService
要使用AutoCompleteExtender,我們要通過WebService傳遞數據。在解決方案資源管理器單擊項目-〉添加新項-〉Web服務。我在這里使用了默認的名稱,大家有需要自己改吧。
WebService.asmx的代碼如下:
using System; using System.Web.Services; using System.Collections.Generic; ? ? ///<summary> /// WebService 的摘要說明 ///</summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { ? ??? public WebService () { ? ??????? //如果使用設計的組件,請取消注釋以下行 ??????? //InitializeComponent(); ??? } ? ??? [WebMethod] ??? public string[] GetCompleteList(string prefixText, int count) { ??????? char c1, c2, c3; ??????? if (count == 0) ??????????? count = 10; ??????? List<String> list = new List<string>(count); ??????? Random rnd = new Random(); ??????? for (int i = 1; i <= count; i++) ??????? { ??????????? c1 = (char)rnd.Next(65, 90); ??????????? c2 = (char)rnd.Next(97, 122); ??????????? c3 = (char)rnd.Next(97, 122); ??????????? list.Add(prefixText + c1 + c2 + c3); ??????? } ??????? return list.ToArray(); ??? } }注意:加亮部分大家要自行添加。[System.Web.Script.Services.ScriptService]一定要加,它告訴.net runtime這個WebService被允許從客戶端調用。另外System.Collections.Generic是List的命名空間,List可以理解成物件或類別的集合,我們可以根據特殊條件在List里找到我們所需要的值,是.net 2.0新增加的類。該函數的意思是產生三個隨機字母,自動添加在輸入字符串的后面。另外prefixText和count這兩個參數名稱要嚴格遵守拼寫格式,原因以前已經介紹過了。
第三步:設置AutoCompleteExtender
具體設置代碼如下:?
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ??????? TargetControlID="TextBox1" ??????? CompletionSetCount="12" ??????? EnableCaching="true" ??? ????MinimumPrefixLength="3" ??????? ServicePath="WebService.asmx" ??????? ServiceMethod="GetCompleteList"> </ajaxToolkit:AutoCompleteExtender>TargetControlID是目標控件ID,這里是TextBox1。CompletionSetCount是指列表列出輸入提示的數量。EnableCaching指是否啟用緩存,建議啟動。MinimumPrefixLength是指輸入多少個字符后開始列出輸入提示列表。ServicePath是指Web服務的文件名,這里是WebService.asmx。ServiceMethod是指調用Web服務的函數名,這里是GetCompleteList。
OK,運行!效果如下圖:
結束:
本章介紹了AutoCompleteExtender的使用方法。在本例子中,我只是通過簡單的算法產生隨機字母并添加到輸入字符串后面。這種方法實用性不大,建議大家在實際使用時自行編寫更復雜的算法,讓AutoCompleteExtender產生更實用的效果。
?
引用地址:http://www.falaosao.net/article.asp?id=165
轉載于:https://www.cnblogs.com/sishierfei/archive/2009/11/25/1610585.html
總結
以上是生活随笔為你收集整理的[转]轻松掌握Ajax.net系列教程十五:使用AutoCompleteExtender的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 子页面跳转到父页面指定地方
- 下一篇: ~~