[导入]变态的Ajax控件AutoComplete
今天试用了一下AutoComplete控件,据说能实现Google建议的样式,Copy了一个例子,运行一切顺利。哈,开门红啊。
自己尝试动手做一个,按照标准作业步骤:
1.建立一个能试用ajax的website。
2.建立一个aspx网页。
3.在网页上放置一个ScriptManager控件。
4.在网页上放置一个AutoCompleteExtender控件。
5.在网页上放置一个TextBox服务器端组件。
6.在当前网站上添加一个web服务。
7.在服务中编写一个web方法,返回值应该为字符串数组,参数列表为(string,int)。
以下为设置步骤:
1.设置AutoCompleteExtender的TargetControlID为TextBox的ID。
2.设置AutoCompleteExtender的ServicePath为服务的名称(*.asmx)。
3.设置AutoCompleteExtender的ServiceMethod为服务中的web方法。
当然了,在web方法中应该写从数据库或其他数据源获取数据。
居然死活过不去,没法子,祭出代码对比工具Eye,一行行看吧,aspx页面没问题,问题出在服务中了,标准代码中包括了一句声明:
[System.Web.Script.Services.ScriptService()]
那就加上吧,F5,......
啊,还不行?
这回傻了眼,接着来吧,还是一句一句的看:
1.方法的返回类型都是string[]。
2.方法的参数列表都是(string,int)。
难道是方法的名称?
那就再改一回吧,再Run,嗯......啊,居然还是挂了。
没理由的呀,两个方法是一样的啊,
原版方法:string[] GetKey(string
prefixText,int count);
我写方法:string[] GetKey(string s,int x);
看到差别了?!
不会这么变态吧,居然要求参数列表中的名称必须为prefixText和count。以c系列语言的经验,那只是形参而已,只要在方法中用就可以了。
由此推断出,没有最变态,只有更变态。
文章来源:http://blog.sina.com.cn/s/blog_49458c2701008s6r.html