Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
摘要:自动完成功能在Ajax时代已经见的很多了,像Google Suggest,很多邮箱中也都有应用。在Atlas对于自动完成功能提供了很好的支持,提供了客户端的AutoComplete Behavior和服务器端的AutoComplete Extender的支持。本文主要看一下使用AutoComplete Extender来实现自动完成功能。
主要内容
1.AutoComplete Extender介绍
2.一个完整的示例
一.AutoComplete Extender介绍
自动完成功能在Ajax时代已经见的很多了,像Google Suggest,很多邮箱中也都有应用,如下图:
在Atlas对于自动完成功能提供了很好的支持,提供了客户端的AutoComplete Behavior和服务器端的AutoComplete Extender的支持。本文主要介绍一下使用AutoComplete Extender来实现自动完成功能。一个简单的AutoComplete Extender如下:













对于AutoComplete Extender来说,它具有如下属性:
属性 |
描述 |
ServicePath |
指定自动完成功能Web Service的路径 ServicePath="AutoCompleteService.asmx" |
ServiceMethod |
指定自动完成功能Web Method的名称 ServiceMethod="GetWordList" |
DropDownPanelID |
指定显示列表的Panel的ID,一般情况会提供一个默认的,我们无需指定 |
minimumprefixlength |
开始提供自动完成列表的文本框内最少的输入字符数量。 minimumprefixlength="1" |
我们需要为AutoComplete Extender控件指定一个AutoCompleteProperties子控件,它同样具有如下属性:
属性 |
描述 |
ServicePath |
同AutoComplete Extender的ServicePath |
ServiceMethod |
同AutoComplete Extender的ServiceMethod |
minimumprefixlength |
同AutoComplete Extender的minimumprefixlength |
Enabled |
是否开启自动完成功能,默认值为false Enabled="True" |
TargetControlID |
指定自动完成功能应用到哪个TextBox上,设置Web服务器TextBox控件的ID TargetControlID="TextBox1" |
下面通过一个例子来看一下具体如何使用,来自于Atlas的官方网站。
二.一个完整的示例
1.准备相关的数据源,这里使用一个本文文件作为我们的数据源,当然你也可以从数据库中读数据,拷贝如下单词为words.txt并保存在App_Data文件夹:

2.编写Web Service用来提供单词列表,这里我们并不关心具体的实现逻辑,只关心Web Method接收什么样的参数,最后返回一个string数组即可。






































































































3.添加AutoComplete Extender,首先需要添加一个ScriptManager,再添加一个服务器端的控件和一个AutoComplete Extender,并设置相关的参数,代码如下:





























好了,到这里整个步骤就全部完成了,运行后就可以看到效果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构