技术开发 频道

轻松掌握Ajax.net系列教程十五:使用AutoCompleteExtender


【IT168技术文档】

  本章介绍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>
0
相关文章