Ajax Toolkit 控件学习系列(6) ——AutoCompleteExtender 使用
不知道大家是不是有注意到googel等搜索引擎时候,输入字母或者汉字的开头,就会有后续的提示信息呢。当然了,google所使用的技术,我不敢贸然的猜测,但是我们今天可以借助Ajax所提供给大家个控件,进行模仿。google的搜索技术确实惊人,可以在提示的信息中,在它的服务器中,快速的搜索出来短时间的找到需要的信息。
看效果。
输入wo之后,后续的3个随即生成的提示。可以简单模仿下效果。在这个例子中,建立一个Webservice进行演示。
<div>
<asp:ScriptManager ID="sm" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="updatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="tb" runat="server" Text=""></asp:TextBox>
<ajax:AutoCompleteExtender ID="googleSa" runat="server" ServicePath="AutoComplete.asmx"
TargetControlID="tb" ServiceMethod="GetCompletionList">
</ajax:AutoCompleteExtender>
</ContentTemplate>
</asp:UpdatePanel>
</div>
AutoCompleteExtender控件的属性:
1.TargetControlID:指定将被辅助完成自动输入的控件ID,这里的控件只能是TextBox;
2.ServicePath:指出提供服务的WEB服务路径,若不指出则ServiceMethod表示本页面对应的方法名;
3.ServiceMethod:指出提供服务的方法名;
4.MinimumPrefixLength:指出开始提供提示服务时,TextBox控件应有的最小字符数,默认为3;
5.CompletionSetCount:显示的条数,默认为10;
6.EnableCaching:是否在客户端缓存数据,默认为true;
7.CompletionInterval:从服务器读取数据的时间间隔,默认为1000,单位:毫秒。
使用的几点注意事项。
1.属性声明:
[System.Web.Script.Services.ScriptService]
2.方法的三个条件:需要严格遵守!
返回类型必需为:string [];
参数类型必需为:string , int;
参数名:prefixText , count。
Code
[System.Web.Script.Services.ScriptService()]
public class AutoComplete : System.Web.Services.WebService
{
[WebMethod]
public string[] GetCompletionList(string prefixText,int count)
{
if (count == 0)
{
count = 10;
}
if (prefixText.Equals("xyx"))
{
return new string[0];
}
List<string> items=new List<string>(count);
Random random1=new Random();
for(int i=0;i<count;i++)
{
char c1 = (char)random1.Next(65, 97);
char c2 = (char)random1.Next(97, 122);
char c3 = (char)random1.Next(97, 122);
items.Add(prefixText + c1 + c2 + c3);
}
return items.ToArray();
}
}
作者:Alexliu(alex dotNet Learning)
出处:http://alexliu.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,转载请注明。并且保留文章链接。否则保留追究法律责任的权利。