加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

ajaxToolkit:AutoCompleteExtender 简单用法

发布时间:2020-12-17 02:36:29 所属栏目:安全 来源:网络整理
导读:ajaxToolkit 是微软官方的一个ajax控件包,? AutoCompleteExtender 就是其中之一. 需要引用ajaxToolkit.dll 达到的效果就是像baidu的输入查询条件带出提示的效果。 前台文本框: asp : TextBox ID ="txt1" runat ="server"/ asp : TextBox 这就是一个默认的文

ajaxToolkit 是微软官方的一个ajax控件包,? AutoCompleteExtender 就是其中之一. 需要引用ajaxToolkit.dll

达到的效果就是像baidu的输入查询条件带出提示的效果。

前台文本框:
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
这就是一个默认的文本框,不需要任何多余的设定.? 然后定义一个AutoCompleteExtender,这里我们只设置了最基本的选项,其它的选项后面我会说明:
<ajaxToolkit:AutoCompleteExtender ID="ac1" runat="server" TargetControlID="txt1" ServicePath="webservice.asmx"? //? 这边放的是webservice名字??? ServiceMethod="GetTextList" MinimumPrefixLength="1" ></ajaxToolkit:AutoCompleteExtender>
这样,前台的工作就完成了。

后台要添加一个webservice服务。

?

namespace AJAXEnabledWebApplication3
{
??? /// <summary>
??? /// Summary description for AutoComplete
??? /// </summary>
??? [WebService(Namespace = "http://tempuri.org/")]
??? [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
??? [System.Web.Script.Services.ScriptService]
??? [ToolboxItem(false)]
??? public class AutoComplete : System.Web.Services.WebService
??? {
??????? public static string[] autoCompleteTextList = null;


??????? [WebMethod]
??????? public string HelloWorld()
??????? {
??????????? return "Hello World";
??????? }

??????? [WebMethod]
??????? public string[] GetTextList(string prefixText,int count)
??????? {?? ///检测参数是否为空
??????????? if (string.IsNullOrEmpty(prefixText) == true || count <= 0) return null;
??????????? if (autoCompleteTextList == null)
??????????? {
??????????????? //获取data.txt文件的数据
??????????????? StreamReader reader = new StreamReader(Server.MapPath("data.txt"));
??????????????? //按行方式读取data.txt文件的数据
??????????????? ArrayList list = new ArrayList();
??????????????? string rowString = reader.ReadLine();
??????????????? while (rowString != null)
??????????????? {?? ///读取一行
??????????????????? list.Add(rowString);
??????????????????? rowString = reader.ReadLine();
??????????????? }
??????????????? reader.Close();
??????????????? //将获取的内容保存到临时数组中
??????????????? string[] tempTextList = new string[list.Count];
??????????????? int i = 0;
??????????????? foreach (string s in list)
??????????????? {
??????????????????? tempTextList[i++] = s;
??????????????? }
??????????????? //对数组进行排序
??????????????? Array.Sort(tempTextList,new CaseInsensitiveComparer());
??????????????? autoCompleteTextList = tempTextList;
??????????? }
??????????? //定位二叉树搜索的起点
??????????? int index = Array.BinarySearch(autoCompleteTextList,prefixText,new CaseInsensitiveComparer());
??????????? if (index < 0)
??????????? {
??????????????? //修正起点
??????????????? index = ~index;
??????????? }
??????????? //搜索符合条件的数据

??????????? int matchCount = 0;
??????????? for (matchCount = 0; matchCount < count && matchCount + index < autoCompleteTextList.Length; matchCount++)
??????????? {
??????????????? //查看开头字符串相同的项
??????????????? if (autoCompleteTextList[index + matchCount].StartsWith(prefixText,StringComparison.CurrentCultureIgnoreCase) == false)
??????????????? { break; }
??????????? }

??????????? //处理搜索结果
??????????? string[] matchResultList = new string[matchCount];
??????????? if (matchCount > 0)
??????????? {
??????????????? //复制搜索结果
??????????????? Array.Copy(autoCompleteTextList,index,matchResultList,matchCount);
??????????? }
??????????? return matchResultList;
??????? }
??? }
}

?

这样就可以浏览效果了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读