一、属性
1、TargetControlID:指定要实现提示功能的控件。
2、ServicePath:WebService的路径,提取数据的方法是写在一个WebService中的。
3、ServeiceMethod:写在WebService中的用于提取数据的方法的名字。
4、MinimumPrefixLength:用来设置用户输入多少字母才出现提示效果。
5、CompletionSetCount:设置提示数据的行数。
6、CompletionInterval:从服务器获取书的时间间隔,单位是毫秒。
二、使用实例说明
a、新建Ajax Web 窗体,将其命名为AutoComplete.aspx。
b、在窗体上拖放一个TextBox控件,并为该控件添加AutoComplete程序扩展
添加完扩展后,源代码页面如下:
<cc1:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server" Enabled="True" TargetControlID="TextBox1" ServicePath="AutoComplete.asmx" ServiceMethod="GetCompletionList" MinimumPrefixLength="0" CompletionInterval="500" EnableCaching="true" CompletionSetCount="20"> </cc1:AutoCompleteExtender>
在这里大家可以看到我们使用了一个web服务页面AutoComplete.asmx来完成提取数据的方法GetCompletionList的。页面代码如下:
using System; using System.Collections; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq; using System.Collections.Generic; /// <summary> ///AutoComplete 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService] public class AutoComplete : System.Web.Services.WebService { public AutoComplete () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string[] GetCompletionList(string prefixText, int count) { if (count == 0) { count = 10; } if (prefixText.Equals("xyz")) { return new string[0]; } Random random = new Random(); List<string> items = new List<string>(count); for (int i = 0; i < count; i++) { char c1 = (char)random.Next(65, 90); char c2 = (char)random.Next(97, 122); char c3 = (char)random.Next(97, 122); items.Add(prefixText + c1 + c2 + c3); } return items.ToArray(); } }
c、这里整个功能就完成了,效果如下: