类似百度、Google中搜索框自动提示的功能
需要微软的ajaxToolkit开源工具包
下载地址:http://download.csdn.net/detail/zlwzlwzlw/6569271
解压编译后,在该目录的SampleWebSite\Bin中将AjaxControlToolkit的dll和pdb文件拷出,并引用到你的项目中。
在工具栏中将其引用,调用AutoCompleteExtender控件使用
aspx中使用例子如下:
</pre><p></p><p><span style="font-size:14px;"><span style="font-family: Arial; line-height: 26px;"></span></span></p><pre name="code" class="html">
<asp:ScriptManager runat="server" ID="ScriptManager1" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
父级角色:<asp:TextBox ID="txt_parent_rolename" autocomplete="off" runat="server"></asp:TextBox><br /><br />
<cc1:AutoCompleteExtender ID="actParent_RoleName" runat="server"
TargetControlID="txt_parent_rolename"
BehaviorID="AutoCompleteEx"
ServicePath ="~/WebServices/selectBaseInfo.asmx"
ServiceMethod = "GetRoleName"
MinimumPrefixLength="2"
CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="20"
CompletionListCssClass="autocomplete_completionListElement"
CompletionListItemCssClass="autocomplete_listItem"
CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
DelimiterCharacters=";, :"
ShowOnlyCurrentWordInCompletionListItem="true">
</cc1:AutoCompleteExtender>
</ContentTemplate>
</asp:UpdatePanel>
然后新建一个WebService服务,会生成两个文件asmx和cs,如上例中的selectBaseInfo.asmx,其代码文件为selectBaseInfo.cs
selectBaseInfo.asmx文件内容为:
<%@ WebService Language="C#" CodeBehind="~/App_Code/selectBaseInfo.cs" Class="selectBaseInfo" %>
selectBaseInfo.cs文件内容为:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class selectBaseInfo : System.Web.Services.WebService {
public selectBaseInfo () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
/// <summary>
/// 检索角色名称
/// </summary>
/// <param name="prefixText"></param>
/// <param name="count"></param>
/// <returns></returns>
[WebMethod]
public string[] GetRoleName(string prefixText, int count)
{
BLRoles blrole = new BLRoles();
List<string> item = blrole.queryRoleNamesByKeyword(prefixText.ToUpper(), 2, count);
string[] strReturn = null;
if(item!=null&&item.Count>0)
{
strReturn = item.ToArray();
}
return strReturn;
}
}