Ajax之Anthem和Anthem.AutoSuggest的自动匹配搜索

首先需要找到这个两个dll文件程序中引用Anthem和Anthem.AutoSuggest

下述中的方法都是封装在工厂模式(BLL,Model,SQLDAL)主要代码如下:用这个ajax来做模糊搜索功能

aspx文件中代码。顶部添加

<%@ Register Assembly="Model" Namespace="Model" TagPrefix="Model" %>
<%@ Register Assembly="Anthem.AutoSuggest" Namespace="Anthem" TagPrefix="Anthem" %>
<%@ Register Assembly="Anthem" Namespace="Anthem" TagPrefix="Anthem" %>

在页面中添加anthem控件

添加一个box控件

<Anthem:AutoSuggestBox ID="txtname" runat="server" DataKeyField="Name" AutoCallBack="true"
                                                                        TextBoxDisplayField="Name" ItemNotFoundMessage="没有找到数据!" Required="false" Width="150px">
                                                                        <HeaderTemplate>
                                                                            <table border="0" width="150px" cellpadding="0" cellspacing="0">
                                                                                <tr>
                                                                                    <td align="left" width="20%">
                                                                                        <b>姓名 </b>
                                                                                    </td>
                                                                                    <td align="left" width="20%">
                                                                                        <b>部门 </b>
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </HeaderTemplate>
                                                                        <ItemTemplate>
                                                                            <table border="0" width="150px" cellpadding="0" cellspacing="0">
                                                                                <tr>
                                                                                    <td align="left" width="20%">
                                                                                        <%# ((EmpInfo)Container.DataItem).Name%>
                                                                                    </td>
                                                                                    <td align="left" width="20%">
                                                                                        <%# ((EmpInfo)Container.DataItem).depName%>
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </ItemTemplate>
                                                                    </Anthem:AutoSuggestBox>

和一个标签控件

<Anthem:Label ID="txtcode" Style="width: 100px;" BackColor="#FFFFC0" runat="server" />

aspx.cs后台代码

protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        this.txtname.TextChanged += new Anthem.AutoSuggestBox.TextChangedEventHandler(Name_TextChanged);
        this.txtname.SelectedValueChanged += new Anthem.AutoSuggestBox.SelectedValueChangedHandler(Name_SelectedValueChanged);

}

void Name_SelectedValueChanged(object source, EventArgs e)
    {
        this.txtcode.Text = BLL.Emp.GetEmpByCName(txtname.Text.ToString()).depName;
        txtcode.UpdateAfterCallBack = true;
    }

void Name_TextChanged(object source, Anthem.AutoSuggestEventArgs e)
    {
        txtname.DataSource = SelectName(e.CurrentText);
        txtname.DataBind();
    }

private List<EmpInfo> SelectName(string searchString)//需引用命名空间using System.Collections.Generic;
    {
        List<EmpInfo> list = new List<EmpInfo>();
        EmpInfo x = new EmpInfo();
        x.Name = searchString.Trim().ToString();
        foreach (EmpInfo a in BLL.Emp.GetEmpsByA(x))//searchString.Trim()
        {
            if (a.Name.ToLower().Contains(searchString.ToLower()))
                list.Add(a);
        }
        return list;
    }

这样就可以根据模糊搜索自动匹配数据库中的姓名+部门

注:欢迎喜爱编程的朋友进群交流。QQ群交流:256169347

群共享了很多pdf书籍文档


你可能感兴趣的:(asp.net,自动匹配,模糊搜索,Anthem)