一起谈.NET技术,asp.net Ajax ---AutoComplete控件使用

简介: 简介:    AutoComplete控件就是在用户在文本框输入前几个字母或是汉字的时候,该控件就能从存放数据的文或是数据库里将所有以这些字母开头的数据提示给用户,供用户选择,提供方便. 重要属性:    1、TargetControlID:指定要实现提示功能的控件。

 简介:
    AutoComplete控件就是在用户在文本框输入前几个字母或是汉字的时候,该控件就能从存放数据的文或是数据库里将所有以这些字母开头的数据提示给用户,供用户选择,提供方便.

 重要属性:
    1、TargetControlID:指定要实现提示功能的控件。
    2、ServicePath:WebService的路径,提取数据的方法是写在一个WebService中的。
    3、ServeiceMethod:写在WebService中的用于提取数据的方法的名字。
    4、MinimumPrefixLength:用来设置用户输入多少字母才出现提示效果。
    5、CompletionSetCount:设置提示数据的行数。
    6、CompletionInterval:从服务器获取书的时间间隔,单位是毫秒。
示例
打开vs2005创建一个AjaxControlToolKit网站。
在网站的App_Data文件夹下添加文本文件TextFile.txt,并在其中添加数据,如下

 
 
1 oec2003
2 oec2004
3 oec2005
4 oec2006
5 oec2007

   在网站的根目录下添加一个Web服务,命名为oec2003_AutoComplete,系统自动将Web服务两个部分,设计部分oec2003_AutoComplete.asmx和代码部分oec2003_AutoComplete.cs,其中oec2003_AutoComplete.cs文件自动放入到App_Code目录下。打开oec2003_AutoComplete.cs文件,添加获取数据的方法GetCompleteList,代码如下:

 1 using  System;
 2 using  System.Web;
 3 using  System.Collections;
 4 using  System.Web.Services;
 5 using  System.Web.Services.Protocols;
 6 using  System.IO;
 7
 8
 9 /**/ /// <summary>
10/// AutoComplete 的摘要说明
11/// </summary>

12 [WebService(Namespace  =   " http://tempuri.org/ " )]
13 [WebServiceBinding(ConformsTo  =  WsiProfiles.BasicProfile1_1)]
14 [System.Web.Script.Services.ScriptService]
15 public   class  AutoComplete : System.Web.Services.WebService  {
16
17    public AutoComplete () {
18
19        //如果使用设计的组件,请取消注释以下行 
20        //InitializeComponent(); 
21    }

22
23    [WebMethod]
24    public string HelloWorld() {
25        return "Hello World";
26    }

27    /**//// <summary>
28    /// 获取数据的方法GetCompleteList
29    /// </summary>

30    //定义静态数组用于保存获取的数据
31    private static string[] autoCompleteWordList = null;
32    [WebMethod]
33    public String[] GetCompleteList(string prefixText, int count)
34    {
35        if (autoCompleteWordList == null)
36        {
37            string[] temp = File.ReadAllLines(Server.MapPath("~/App_Data/TextFile.txt"));
38            Array.Sort(temp, new CaseInsensitiveComparer());
39            autoCompleteWordList = temp;
40        }

41
42        int index = Array.BinarySearch(autoCompleteWordList, prefixText, new CaseInsensitiveComparer());
43        if (index < 0)
44        {
45            index = ~index;
46        }

47
48        int matchingCount;
49        for (matchingCount = 0; matchingCount < count && index + matchingCount < autoCompleteWordList.Length; matchingCount++)
50        {
51            if (!autoCompleteWordList[index + matchingCount].StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase))
52            {
53                break;
54            }

55        }

56        String[] returnValue = new string[matchingCount];
57        if (matchingCount > 0)
58        {
59            Array.Copy(autoCompleteWordList, index, returnValue, 0, matchingCount);
60        }

61        return returnValue;
62    }

63
64}

由于在上面的代码中使用了File类,所以应该添加如下代码:

using  System.IO;

 因为需要在客户端调用Web服务,还需要添加如下代码

[System.Web.Script.Services.ScriptService]

保存Web 服务的代码
 打开根目录下默认生成的Default.aspx
在页面中拖拽一个TextBox控件和一个AutoCompleteExtender控件。
在属性窗口设置AutoCompleteExtender控件的属性,如下

< ajaxToolkit:AutoCompleteExtender 
            ID
= " AutoCompleteExtender1 "  
            runat
= " server "  
            ServiceMethod
= " GetCompleteList "  
            ServicePath
= "oec2003_ AutoComplete.asmx "  
            Enabled
= " true "  
            MinimumPrefixLength
= " 2 "  
               CompletionSetCount="10"
            TargetControlID
= " TextBox1 " >
</ ajaxToolkit:AutoCompleteExtender >

在Web服务中的count参数的值是取CompletionSetCount属性的值。
保存设计的页面,将默认页面设置为起始页,按F5运行后在文本框中输入oe,就能看到想要的结果。

代码下载

目录
相关文章
|
4天前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
4天前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
|
2月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
46 4
|
2月前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
45 3
|
2月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
39 3
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
56 3
|
2月前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
36 3