Asp.net学习记录6--Textbox的自动完成、自动补充功能呢

时间:2021-12-14 15:30:48

类似百度、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;
    }
}