ajaxControlToolkit AutoCompleteExtender的用法
AutoCompleteExtender 自动完成扩展, 配合TextBox使用功能类似现在google中输入搜索字,则在TextBox下出来下拉框显示搜索目标中的项目
这个扩展控件需要配合Web Service使用,所以涉及了点web Service的使用(这里只简单谈下,等用熟了再仔细谈下web service的内容)
先介绍下AutoCompleteExtender的几个关键属性:
---------------------------------------------------------------------
a,TargetControlID 这个属性是所有AjaxControlToolkit的共同属性,就是扩展目标控件ID(官方这么说的吧)
b.CompletionSetCount 这个属性是设置显示下拉结果的条数 默认为10吧
c.MinimumPrefixTextLength 这个属性是设置输入几个字符的长度后调用webService中的方法显示下拉列表
d.ServicePath 这个属性设置需要调用的web Service路径
e.ServiceMethod 这个属性设置需要调用的web Service中的方法(函数)
f.EnableCaching:是否在客户端缓存数据,默认为true
g.CompletionInterval:从服务器读取数据的时间间隔,默认为1000,单位:毫秒
------------------------------------------------------------------------
1.新建一个页面,加入ScriptManager控件 一个TextBox控件 一个AutoCompleteExtender控件
2.新建立一个webService(AutoCompleteService.cs),添加一个[WebMethod]方法
[WebMethod]
[复制此代码]CODE:
/// <summary>
/// 查询时文本框自动获取部门下拦列表
/// </summary>
/// <param name="prefixText"></param>
/// <param name="count"></param>
/// <returns></returns>
[WebMethod]
public string[] GetDepartmentList(string prefixText, int count)
{
if (count == 0)
{
count = 10;
}
List<string> items = new List<string>(count);
if (CommonPage.CheckSensitiveStr(prefixText))
{//CheckSensitiveStr检查敏感字符
IDepartmentDAL dal = DataAccess.CreateDepartmentDAL();
string sql = "dwmc like '" + prefixText + "%'";
DataTable dt = new DataTable();
dt = dal.GetDepartmentByWhere(sql);
foreach (DataRow dr in dt.Rows)
{
items.Add(dr["dwmc"].ToString());
}
return items.ToArray();
}
else
{
return items.ToArray();
}
}
页面代码:
<td width ="135" ><asp:TextBox CssClass="textbox" ID="txtDwmc" runat="server"
Width="128px" />
<ajaxToolkit:AutoCompleteExtender ID="autoComplete1" runat="server"
BehaviorID="AutoCompleteEx" CompletionInterval="100"
CompletionListCssClass="autocomplete_completionListElement"
CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
CompletionListItemCssClass="autocomplete_listItem" DelimiterCharacters=";, :"
MinimumPrefixLength="1" ServiceMethod="GetDepartmentList"
ServicePath="~/WebService/AutoCompleteService.asmx" TargetControlID="txtDwmc">
</ajaxToolkit:AutoCompleteExtender>
--------------------------------------
参考资料:http://www.jb51.net/article/16320.htm