默认情况下,.NET Framework仅自带了最基本的Ajax控件,如UpdatePanel,UpdateProgress等,如果你想让现有ASP.NET应用程序Ajax化,最简单的方法就是利用Ajax控件工具箱中的扩展控件,但Visual Studio默认并没有附带Ajax工具箱,你需要从这里下载,将其添加到Visual Studio工具箱中之后就可以在ASP.NET应用程序中使用了,注意,本文是针对.NET Framework 3.5而非4.0的。
1、自动完成扩展(AutoComplete)
这是我最喜欢的一个ASP.NET TextBox控件的扩展控件,当用户在文本框中输入字符时,它以下拉列表形式显示所有有效的值让用户选择,被选中的值自动填充到TextBox控件中,这个控件在很多ASP.NET应用程序中都得到了应用,图1显示了一个简单的示例。
图 1 自动完成控件运行效果
这个控件在提供搜索功能时用得最多,它可以为用户提供搜索建议,下拉列表中的内容通过一个Web服务进行暴露。
2、动画扩展(Animation)
如果你想使用ASP.NET Ajax制作一个很花俏的网站,那你应该尝试一下动画控件,它可以节省开发人员创建动画需要的大量时间,它可以作为任何ASP.NET控件的扩展。
使用动画扩展可以轻松创建褪色,移动,改变大小和着色等许多效果,当目标控件触发下列事件时可以调用这些动画效果。
• OnLoad
• OnClick
• OnMouseOver
• OnMouseOut
• OnHoverOver
• OnHoverOut
图2显示了一个DIV标签中目标控件被点击时的示例动画效果。
图 2 动画控件运行效果
3、拾色器扩展(Colorpicker)
它可以作为TextBox控件的扩展控件,点击TextBox控件时,弹出颜色拾取面板,用户可以在这个窗口中进行颜色选择,如图3所示。
图 3 颜色拾取控件
如果没有这个扩展控件,我不知道自己创建这样一个控件会有多大的难度,这也是我将其列在10大控件之中的原因,我也承认在ASP.NET应用程序中使用这个控件的时候很少。
4、模态弹出扩展(Modalpopup)
这是一个几乎适用于所有ASP.NET服务端容器控件的扩展,它允许你以一种平滑的方式显示服务器控件,它允许你给目标控件编写服务端代码,但客户端代码更快,用户体验更好,不过总归逃不脱要编写服务端代码,这个扩展为这种情况提供了极大的便利。
这个控件让弹出效果更平滑,更清爽,用户体验更丰富,当然你还可以提供服务端代码,图4显示了一个简单的示例。
图 4 模态弹出控件示例
5、可折叠面板扩展(CollapsiblePanel)
当你的网页大部分由控件和文本内容组成时,聪明的人会将它们分组放在不同面板下,在分组顶部使用可折叠面板扩展,增加页面的层次感,这是一个ASP.NET面板的扩展控件,它非常有用,是使用最广泛的扩展控件之一,图5显示了一个简单的可折叠面板扩展示例。
图 5 可折叠面板示例
6、动态填充扩展(Dynamic Populate)
这是一个非常有用功能强大的扩展控件,它为改变使用Ajax的控件中的HTML内容提供了方便,控件的HTML内容修改由TargetControlID控制,内容填充由PopulateTriggerControlId触发,HTML内容应该由Web服务提供。
当你创建一个动态网页时,这个扩展很有用,你不必一开始就加载所有内容,而是根据上下文环境进行显示和隐藏,需要时才显示动态内容,因此这样可以极大地减少页面大小,提高页面性能。
7、幻灯效果扩展(Slide Show)
这个扩展实际上是一个ASP.NET图像控件,借助它可以轻松创建出幻灯片播放效果,你需要做的是通过WebMethod提供幻灯显示的图像,它提供了下一页,上一页,播放/停止按钮和标题标签,图6显示了一个简单的幻灯显示效果示例。
图 6 幻灯显示效果扩展
8、选项卡控件(Tabs)
严格来说,它不能算作一个扩展,因为选项卡是一个独立的控件,在开发ASP.NET网页时最让我头痛的就是创建选项卡,必须结合使用JavaScript和HTML,选项卡的优点是让页面变得更美观,让导航变得更平滑,允许.NET开发人员按一定逻辑将项目进行分组,有TabContainer的选项卡控件是一个容器,它可以包含多个TabPanels,即子选项卡,图7显示了一个简单的选项卡示例。
图 7 选项卡控件示例
9、HTML编辑器控件(HTML Editor)
和选项卡控件一样,HTML编辑器也是一个独立的控件,它为最终用户提供了丰富的HTML文本编辑功能,现在你在网页上见到的HTML编辑器功能都已经非常强大了。
在后台编辑文章或来访者发表评论的地方,都可以使用HTML编辑器,当然你可以限制提交的内容,如后台编辑时通常可以是全HTML格式的内容,而评论则只能是纯文本的内容,图8显示了一个简单的HTML编辑器示例。
图 8 HTML编辑器控件
10、列表搜索扩展(ListSearch)
这个扩展可以是一个列表框控件,也可以是一个下拉列表控件,用户输入字母就可以搜索列表框或下拉列表中的内容,图9显示了一个简单的列表搜索扩展示例。
图 9 列表搜索扩展
小结
毫无疑问,Ajax控件工具箱扩展让我们的ASP.NET Web应用程序变得更丰富多彩,提供更好的用户体验,所有Ajax控件工具箱扩展中的CSS和动画都可以自定义,也就是说,你可以发扬Hack精神,将页面效果和用户体验做到极致。