微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用AutoCompleteExtender

本章介绍autocompleteextender的使用方法。用过Google的朋友都会发现,当我们在搜索框输入关键字的时候,Google会自动列出相关关键字提示。那么用Ajax.net也能做到么?答案是:Of course!

第一步:建立AJAX Control Toolkit Website

本例子只需要一个TextBox控件和一个autocompleteextender组件。拖进设计界面后代码如下所示:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:autocompleteextender ID="autocompleteextender1" runat="server">
</ajaxToolkit:autocompleteextender>

第二步:建立WebService

要使用autocompleteextender,我们要通过WebService传递数据。在解决方案资源管理器单击项目-〉添加新项-〉Web服务。我在这里使用了认的名称,大家有需要自己改吧。

WebService.asmx的代码如下:

using System;
using System.Web.Services;
using System.Collections.Generic;
 
 
///<summary>
/// WebService 摘要说明
///</summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
 
    public WebService () {
 
        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }
 
    [WebMethod]
    public string[] GetCompleteList(string prefixText,int count) {
        char c1,c2,c3;
        if (count == 0)
            count = 10;
        List<String> list = new List<string>(count);
        Random rnd = new Random();
        for (int i = 1; i <= count; i++)
        {
            c1 = (char)rnd.Next(65,90);
            c2 = (char)rnd.Next(97,122);
            c3 = (char)rnd.Next(97,122);
            list.Add(prefixText + c1 + c2 + c3);
        }
        return list.ToArray();
    }
}

注意:加亮部分大家要自行添加。[System.Web.Script.Services.ScriptService]一定要加,它告诉.net runtime这个WebService被允许从客户端调用。另外System.Collections.Generic是List的命名空间,List可以理解成物件或类别的集合,我们可以根据特殊条件在List里找到我们所需要的值,是.net 2.0新增加的类。该函数的意思是产生三个随机字母,自动添加在输入字符串的后面。另外prefixTextcount这两个参数名称要严格遵守拼写格式,原因以前已经介绍过了。

第三步:设置autocompleteextender

具体设置代码如下: 

<ajaxToolkit:autocompleteextender ID="autocompleteextender1" runat="server"
        TargetControlID="TextBox1"
        CompletionSetCount="12"
        EnableCaching="true"
        MinimumPrefixLength="3"
        ServicePath="WebService.asmx"
        ServiceMethod="GetCompleteList">
</ajaxToolkit:autocompleteextender>

TargetControlID是目标控件ID,这里是TextBox1CompletionSetCount是指列表列出输入提示数量EnableCaching指是否启用缓存,建议启动。MinimumPrefixLength是指输入多少个字符后开始列出输入提示列表。ServicePath是指Web服务的文件名,这里是WebService.asmxServiceMethod是指调用Web服务的函数名,这里是GetCompleteList

OK,运行!效果如下图:

结束:

本章介绍了autocompleteextender的使用方法。在本例子中,我只是通过简单的算法产生随机字母并添加到输入字符串后面。这种方法实用性不大,建议大家在实际使用时自行编写更复杂的算法,让autocompleteextender产生更实用的效果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐