AJAX Toolkit(1) --AutoComplete

ASP.NET 2.0的AJAX Toolkit已经推出有些日子了,不过我是最近开始用上的
可以到AJAX的官方网站下载http://www.asp.net
先安装AJAX Extension For 2005,然后,把下载下来的Toolkit里面有一个.vsi文件,双击就可以完成安装,这样就有AJAX Toolkit Website的模板了。
Toolkit的教程网址是http://asp.net/ajax/control%2Dtoolkit/live/
上面包含了所有的工具的说明,不过都是英文的,这次我只做了一个autocomplete的例子,很简单
xml 代码
  1. <ajaxToolkit:AutoCompleteExtender
  2. runat="server"
  3. ID="autoComplete1"
  4. TargetControlID="myTextBox"
  5. ServiceMethod="GetCompletionList"
  6. ServicePath="AutoComplete.asmx"
  7. MinimumPrefixLength="2"
  8. CompletionInterval="1000"
  9. EnableCaching="true"
  10. CompletionSetCount="20"
  11. CompletionListCssClass="autocomplete_completionListElement"
  12. CompletionListItemCssClass="autocomplete_listItem"
  13. CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
  14. DelimiterCharacters=";, :">
  15. <Animations>
  16. <OnShow> ... <!---->OnShow>
  17. <OnHide> ... <!---->OnHide>
  18. <!---->Animations>
  19. <!---->ajaxToolkit:AutoCompleteExtender>
主要是有一个ServicePath用来提供自动完成的Web服务,调用的是ServiceMethod中的方法,TargetID指定的是哪个文本框需要进行自动完成。MinimumPrefixLength指定最少需要多少个才开始自动完成,runat必须是Server,ID指定的是本身的标识符
还有一些动画效果用Anmations指定。CssClass指定的是各种样式了。
这里的AutoComplete.asmx中的GetCompeteList方法有一定的限制,必须是:
c# 代码
  1. [System.Web.Services.WebMethod]
  2. [System.Web.Script.Services.ScriptMethod]
  3. public string[] GetCompletionList(string prefixText, int count) {
  4. //......
  5. }
方法的名称可以不一样,但是参数和返回值,一定要一致,否则不会调用的。
其实还有一个签名是多一个参数:
c# 代码
  1. [System.Web.Services.WebMethod]
  2. [System.Web.Script.Services.ScriptMethod]
  3. public string[] GetCompletionList(
  4. string prefixText, int count, string contextKey) { ... }
不过我没有用过,看了半天的说明还是没有怎么看明白。下次再说

过了一阵子了,今天再回去做这个例子还是有问题,还有遗漏的,就是在webservice的类上也要加上描述
c# 代码
 
  1. [WebService(Namespace = "http://tempuri.org/")]  
  2. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  3. [System.Web.Script.Services.ScriptService]  
  4. public class mycomplete : System.Web.Services.WebService {
  5. }  

你可能感兴趣的:(Ajax,Web,webservice,asp.net,asp)