相忘于江湖

不抛弃,不放弃... 请给我勇敢,改变可以改变的;请给我坚强,接受不可以改变的;请给我智慧,分辨这两者。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
作者:Dflying Chen (http://dflying.cnblogs.com/
请同时参考:使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender实现自动完成功能(上)

让我们通过一个实例来测试上述两种方法:

首先,让我们建立一个词库,提供自动完成的列表。这个词库CopyAtlas的官方文档示例,是一些.NET的常见术语。将其存为WordData.txt并置于App_Data目录下。

Word List

然后创建一个Web Service用来提供建议列表,其中逻辑不多讲了,大概是读入上面的词库并根据输入找出相关的词汇,注意一下GetWordList方法的签名。

Suggestion Web Service Code

Web Service建立好之后您可以直接测试一下,如果一切正确,我们就继续编写Atlas页面。

首先,无论使用客户端AutoComplete Behavior还是服务器端AutoComplete Extender,一个ScriptManager都是必不可少的:

<atlas:ScriptManager runat="server" ID="scriptManager" />

如果使用客户端AutoComplete Behavior,首先需要书写一个HTML input

<input id="clientTextBox" type="text" style="width: 400px;" />

然后,相应的书写Atlas Script。请小心书写毕竟这里基本没有强大的IDE的支持。

<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
   
<components>
       
<textBox id="clientTextBox">
           
<behaviors>
               
<autoComplete 
                  
serviceURL="AutoCompleteService.asmx"
                  serviceMethod
="GetWordList"
                  minimumPrefixLength
="2"
                  completionSetCount
="10"
                  completionInterval
="500" />
           
</behaviors>
       
</textBox>
   
</components>
</page>

在使用服务器端AutoComplete Extender时,一切都非常简单,我们只需要添加一个服务器端TextBox和一个AutoComplete Extender即可:

<asp:TextBox ID="serverTextbox" runat="server" Width="400px" />
<atlas:AutoCompleteExtender ID="serverCompleteExtender" runat="server">
    
<atlas:AutoCompleteProperties Enabled="true" MinimumPrefixLength="2" TargetControlID="serverTextbox"
        ServiceMethod
="GetWordList" ServicePath="AutoCompleteService.asmx" />
</atlas:AutoCompleteExtender>

至此为止,大功告成,让我们在浏览器中测试一下:

客户端AutoComplete Behavior

服务器端AutoComplete Extender

本实例程序的源代码可以在此下载:https://files.cnblogs.com/dflying/AutoCompleteDemo.zip
posted on 2010-07-16 18:03  playman0211  阅读(205)  评论(0编辑  收藏  举报