类似百度搜索时的模糊查询
发布时间:2020-12-17 01:04:43 所属栏目:安全 来源:网络整理
导读:? AutoCompleteExtender提供了类似百度的模糊查询列表 小弟使用它搞了一个“根据用户已经输入的内容”列表中列出从数据库中获得模糊查询的需求(由于刚开始接触Js,大家体谅了啊) 仅仅是上面的结果 也就不卖弄了 网上有很多 关键在于我从列表中获得的结果需
?
AutoCompleteExtender提供了类似百度的模糊查询列表 小弟使用它搞了一个“根据用户已经输入的内容”列表中列出从数据库中获得模糊查询的需求(由于刚开始接触Js,大家体谅了啊) 仅仅是上面的结果 也就不卖弄了 网上有很多 关键在于我从列表中获得的结果需要经过处理 放到文本框中 呵呵? 其它的不说了 具体看代码吧 总体来说有两个扩展需求: 1.一个界面中放两个这样的东东,如果直接放得话 其中一个会不起作用 尤其是放到GridView中的编辑模板中,找这个ID就很难了 2.在提示框中选择了一项后 需要把该项处理后放到文本框中 封装了一个用户控件 如下: 界面 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Mytxt.ascx.cs" Inherits="WebMemberManage.WebUserControl.Mytxt" %> <script type="text/javascript"> function itemSelected(source,eventArgs) { var txtManager = document.getElementById(source.get_element().id); //获得当前编辑的对象 txtManager.value=txtManager.value.split('(')[0]; var a=document.getElementById("<%=lkb_Submit.ClientID %>"); if(a==null) { return; } a.click(); } </script> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:TextBox ID="txtManager" runat="server" Width="350px"></asp:TextBox> <asp:LinkButton ID="lkb_Submit" runat="server" onclick="lkb_Click"></asp:LinkButton> <cc1:AutoCompleteExtender ID="txtManager_AutoCompleteExtender" runat="server" TargetControlID="txtManager" ServicePath="~/MyWebService.asmx" ServiceMethod="GetSimilarMemberByName" MinimumPrefixLength="1" CompletionSetCount="10" EnableCaching="true" CompletionInterval="5" OnClientItemSelected="itemSelected"> </cc1:AutoCompleteExtender> </ContentTemplate> </asp:UpdatePanel> 界面代码 using System; namespace WebMemberManage.WebUserControl { public delegate void MyDel(); [System.Web.Script.Services.ScriptService] public partial class Mytxt : System.Web.UI.UserControl { /// <summary> /// 选择完成后触发的事件 /// </summary> public event MyDel GetText; protected void lkb_Click(object sender,EventArgs e) { if (GetText != null) GetText(); } protected void Page_Load(object sender,EventArgs e) { } public string Text { get { return txtManager.Text; } set { txtManager.Text = value; } } } } Webservice代码 [WebService(Namespace = "MemberManager")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] // To allow this Web Service to be called from script,using ASP.NET AJAX,uncomment the following line. [System.Web.Script.Services.ScriptService] public class MyWebService : System.Web.Services.WebService { [WebMethod] public List<string> GetSimilarMemberByName(string prefixText,int count) { List<string> result = new List<string>(); BLLUser bllUser = new BLLUser(); DataTable table = bllUser.GetSimilarMemberByName(prefixText,count); foreach (DataRow item in table.Rows) { result.Add(item["name"].ToString()); } return result; } } 不过由于AjaxControlToolkit控件库中的东西在界面每次回传的时候 都Dispose了 protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { //首次加载的时候 绑定的方法 } Mytxt1.GetText += new WebMemberManage.WebUserControl.MyDel(Mytxt1_GetText); } void Mytxt1_GetText() { //具体的绑定方法 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容