引言,需要注意,本文通过一个示例讲如何在VS2008、.net framework 3.5中使用Ajax Control Toolkit中的控件。
1. 确保你的.net framework 3.5打了sp1补丁,搜索“.net framework 3.5 sp1”即可,大概200多兆,下载完之后双击安装,安装过程中还会自动下载一些东西,大概6兆。安装完sp1补丁之后重启系统。我正是因为没有打这个补丁,所有的Ajax Control Toolkit中的控件都没有任何效果,比如日历扩展控件不弹出日历,文本框扩展空间没有任何工具,等等。
2. 根据上一篇文章VS2008中添加Ajax控件工具箱的步骤,将Ajax Control Toolkit中的控件添加到VS2008的开发环境中,这样我们就像拖放textbox那样来拖放Ajax Control Toolkit中的控件了。当然,并不是Ajax Control Toolkit都能直接拖放到设计视图中的。工具箱中的Ajax Control Toolkit如下图所示(由于空间较多,只截图了一部分):
3. 我们通过一个网站工程来看一下如何实现“点击一个文本框时,会弹出一个日历,在日历上选择日期之后,会显示在文本框中。”正好,我们就是用上图中的CalendarExtender来实现这个功能.
3.1 创建一个网站工程(这里仅以网站工程为例)。
文件->新建->网站->Asp.net网站,即可。在VS2008中,网站工程和Web应用工程都默认支持Ajax的。
3.2 拖动一个TextBox控件到Default.aspx页面中,如下图:
3.2 将CalendarExtender控件拖动到Default.aspx页面中(注意,拖动的时候要直接拖动到HTML代码区域),如下图所示:
在拖动到HTML代码区域之后,会自动生成代码,然后将CalendarExtender控件加上一个属性: TargetControlID="TextBox1"。可以手工修改代码,或者通过CalendarExtender的属性管理器进行添加。
3.3. 在
之后增加ToolkitScriptManager,注意,一定是ToolkitScriptManager,而不是ScriptManager,这里非常重要。后边给出完整代码。F5运行一下吧。。。
4. 将ClaendarExterder时,VS2008做了两件事情,一方面bin文件夹下添加了TookKit的dll文件,另一方面在HTML代码开始的地方多了:
注册了控件工具集,采用asp作为前缀,这样就可以通过asp:xxx 来使用
Ajax Control Toolkit中的控件了。
5. 完整代码
无标题页TargetControlID="TextBox1">
我们没有写任何一行代码。。。效果如下:
6. 小结
a. 一定要打3.5 sp1的补丁
b. 下载的控件版本一定要是3.5的
c. 不能使用ScriptManager,而是使用TookkitScriptManager,并且其中要添加EnableScriptGlobalization=true EnableScriptLocalization=true这两个属性。
d.TookkitScriptManager一定要在
之后,并且最好就是紧跟着forme. 会自动生成:
有兴趣的朋友可以在Web.conf中进行配置:
。。。。。。
这样,所有的页面都不要Register AjaxControlToolkit了。
f. 不需要手动将AjaxControlToolkit.dll文件添加到引用或者放到bin文件夹中,IDE会自动处理。
另外,这里也说一下引用和直接将文件放到bin文件夹中的区别。如果工程A引用的文件F是来自于另一个工程B的结果,那么每次工程A都会检查文件F是否有(被工程B)更改,如果直接将文件F放到工程A的文件夹,则之后每次不会去检查文件F是否有更改。
g. 有问题的朋友可以随时联系我。。。
[转载请标明出处 谢谢]