<cc1:AutoCompleteExtender
TargetControlID="txtKeyword"
ServicePath="../MyWebService/MyWebService.asmx"
ServiceMethod="GetHotSearchByKeyword"
MinimumPrefixLength="1"
EnableCaching="true"
CompletionSetCount="10"
ID="AutoCompleteExtender1" runat="server">
</cc1:AutoCompleteExtender>
主要属性:
TargetControlID:要实现自动完成功能的控件ID
ServicePath:Web 服务的路径
ServiceMethod:要使用的 Web 服务的方法
MinimumPrefixLength:用户输入多少个字母才出现提示效果
EnableCaching:是否启用缓存
CompletionSetCount:提示数据的行数
关键代码:
//创建一个Web Service文件,
[WebMethod]
public string[] GetHotSearchByKeywords(string prefixText, int count)
{
//根据关键字和显示行数,返回查询的结果
return SearchKeywordManager.GetHotSearchKeywords(prefixText,count);
}
// GetHotSearchKeywords是业务处理层SearchKeywordsManager类中的一个方法
public static string[] GetHotSearchKeywords(string keyWord, int displaycount)
{
return SearchKeywordService.GetHotSearchKeywords(keyWord, displaycount);
}
// SearchKeywordService是数据访问层中的类,包含GetHotSearchKeywords方法
public static string[] GetHotSearchKeywords(string keyword, int displaycount)
{
IList<SearchKeyword> keywords = new List<SearchKeyword>();
List<string> results = new List<string>(displaycount);
string sqlHot = "select top 10 * from SearchKeywords where keyword like '"+keyword+"%' order by SearchCount desc";
keywords = GetSearchKeywordsBySql(sqlHot);
foreach (SearchKeyword item in keywords)
{
results.Add(item.Keyword);
}
return results.ToArray();
}
//在common.master页中拖入一个ScriptManager和一个AutoCompleteExtender控件
<cc1:AutoCompleteExtender
TargetControlID="search"
ServicePath="MyWebService/HotSearchKeyWords.asmx"
ServiceMethod="GetHotSearchByKeywords"
MinimumPrefixLength="1"
EnableCaching="true"
CompletionSetCount="10"
ID="AutoCompleteExtender1"
runat="server">
</cc1:AutoCompleteExtender>
AutoComplete 控件的方法和技巧