摘要:自动完成功能在Ajax时代已经见的很多了,像Google Suggest,很多邮箱中也都有应用。在Atlas对于自动完成功能提供了很好的支持,提供了客户端的AutoComplete Behavior和服务器端的AutoComplete Extender的支持。本文主要看一下使用AutoComplete Extender来实现自动完成功能。

 

主要内容

1AutoComplete Extender介绍

2.一个完整的示例

 

一.AutoComplete Extender介绍

自动完成功能在Ajax时代已经见的很多了,像Google Suggest,很多邮箱中也都有应用,如下图:

Atlas对于自动完成功能提供了很好的支持,提供了客户端的AutoComplete Behavior和服务器端的AutoComplete Extender的支持。本文主要介绍一下使用AutoComplete Extender来实现自动完成功能。一个简单的AutoComplete Extender如下:

Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能<atlas:AutoCompleteExtender runat="server" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能 ID
="autoComplete1">
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能   
<atlas:AutoCompleteProperties TargetControlID="TextBox1" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能      Enabled
="True" ServicePath="AutoCompleteService.asmx" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能      ServiceMethod
="GetWordList" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能      minimumprefixlength
="1"  />
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
</atlas:AutoCompleteExtender>

对于AutoComplete Extender来说,它具有如下属性:

属性

描述

ServicePath

指定自动完成功能Web Service的路径

ServicePath="AutoCompleteService.asmx"

ServiceMethod

指定自动完成功能Web Method的名称

ServiceMethod="GetWordList"

DropDownPanelID

指定显示列表的PanelID,一般情况会提供一个默认的,我们无需指定

minimumprefixlength

开始提供自动完成列表的文本框内最少的输入字符数量。

minimumprefixlength="1"

我们需要为AutoComplete Extender控件指定一个AutoCompleteProperties子控件,它同样具有如下属性:

属性

描述

ServicePath

AutoComplete ExtenderServicePath

ServiceMethod

AutoComplete ExtenderServiceMethod

minimumprefixlength

AutoComplete Extenderminimumprefixlength

Enabled

是否开启自动完成功能,默认值为false

Enabled="True"

TargetControlID

指定自动完成功能应用到哪个TextBox上,设置Web服务器TextBox控件的ID

TargetControlID="TextBox1"

下面通过一个例子来看一下具体如何使用,来自于Atlas的官方网站。

二.一个完整的示例

1.准备相关的数据源,这里使用一个本文文件作为我们的数据源,当然你也可以从数据库中读数据,拷贝如下单词为words.txt并保存在App_Data文件夹:

custom control

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

Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能using System;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.IO;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Web;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Collections;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Collections.Generic;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Threading;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Web.Services;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Web.Services.Protocols;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
using System.Xml.Serialization;
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
}

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

Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能<atlas:ScriptManager id="AtlasPage1" runat="server" />
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
<div class="page"id="links">
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能 
<div id="content">
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能   
<h2>AutoComplete server control</h2>
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能   
<asp:TextBox ID="TextBox1" runat="server" Width="220px"></asp:TextBox>
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能    
<atlas:AutoCompleteExtender runat="server" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能     ID
="autoComplete1">
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能       
<atlas:AutoCompleteProperties
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能          
TargetControlID="TextBox1" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能          Enabled
="True" ServicePath="AutoCompleteService.asmx" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能          ServiceMethod
="GetWordList" 
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能          minimumprefixlength
="1"  />
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能    
</atlas:AutoCompleteExtender>     
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能 
</div>
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
</div>

好了,到这里整个步骤就全部完成了,运行后就可以看到效果如下:

Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能

完整示例下载:http://terrylee.cnblogs.com/Files/Terrylee/AutoCompleteExtenderDemo.rar

相关文章:

  • 2022-01-16
  • 2021-10-16
  • 2022-12-23
猜你喜欢
  • 2021-10-07
  • 2021-06-21
  • 2021-08-13
  • 2022-02-04
  • 2021-12-07
相关资源
相似解决方案