本来想写一个初学 ajax的系列文章的但是完成了一篇后发现关于 ajax系列的文章早已是成泛滥之势况且本人也没那么好的文笔去与牛人们媲美所以转念一想倒不如踏踏实实地学习一段时间等运用到项目中之后写一篇货真价实的应用性的文章也算是为大家探探路这也是写此篇文章的初衷随着项目的深入我会继续完善这篇文章希望能够为园子里的兄弟们做个参考
一 下面先对 ajax做一个简单的介绍:
ajax 的 前身就是我们大家熟悉的Atlas 后来被正式的纳入到vs框架中来通过对 ajax的应用 我们可以方便的将ajax的特性引入到项目中来显着的提高用户体验其实 ajax的特点也是继承了微软产品一贯的特点简单易用功能强大只需要掌握 ajax的几个关键控件就可以应用到项目中来了 下面简单的介绍一下 ajax的几个关键控件
ScriptManager ScriptManager控件算是 ajax 控件中最重要的一个了所有的脚本都是通过ScriptManager来管理的 它的使用因该注意以下几点 a 在一个页面中有且只能有一个ScriptManager控件而且因该将它作为页面的第一个控件(否则容易报莫名的异常 sys什么什么的)作为 的核心控件它对ajax控件中用到的脚本作统一的调度管理因此一些属性的设置也至关重要AsyncPostBackTimeout 这个属性决定了异步请求的时间限制如果你有比较复杂的异步请求调用就需要将这个属性的值设置的大一些否则就小一些默认是毫秒AsyncPostBackError 是个事件代理当页面中的异步请求调用出现异常就会触发这个事件我们可以在这个事件中作我们自定义的处理AllowCustomErrorsRedirect这个属性是bool型的设置当异常出现时是否给允许跳转页面 但是大部分的应用不必要设置这么多内容我们要做的只是将控件拖放到页面中
ScriptManagerProxy ScriptManagerProxy控件算是ScriptManager的助手当有母板页存在的时候也就是它大派用场的地方了前面提到过每个页面中只能放置一个ScriptManager控件但是在母板页结构的应用中Contentpage里如果有需要管理的脚本怎么办?? 我们可以在母板页中放置一个ScripManager页面然后再在各个contentpage中放置 ScriptManagerProxy控件让它来代理
ScriptManager的工作对ContentPage中的脚本进行管理这也许就是ScriptManagerProxy控件名称的来由吧
UpdatePanel第三个要介绍的当然就是大名鼎鼎的UpdatePanel控件了 这个玩意儿真是有点意思不管你是什么控件只要你往UpdatePanel控件的<ContentTemplate>中一放立马摇身一变支持异步调用了UpdatePanel控件的属性有UpdateModeTriggers等 updateMode用来设定异步触发的时机(具体不再详述)Triggers属性用来设定UpdatePanel可以更新的控件(我们可以不将控件放置在UpdatePanel控件的<ContentTemplate>中而通过对Triggers属性的设置来实现异步刷性的效果)
UpdateProgress: 做了异步刷信页面可就不刷新了不能让用户干等着阿至少要让用户知道程序正在运行中不是?? 这时候UpdateProgress控件的作用就体现出来了通过对ProgressTemplate模板的设置我们可以在异步调用过程中显示提示信息告诉用户系统正在运行中另外DisplayAfter属性也十分重要哦通过设置时限可以设定异步调用后多长时间显示ProgressTemplate中的内容默认的可能是毫秒一些快的操作几乎没反应我是将DisplayAfter属性设置为 一异步调用马上就显示ProgressTemplate 哈
至此 ajax的控件就介绍完了那么在项目中究竟是怎么用的呢? 我在项目中的做法是:
首先在Masterpage页面中先添加ScriptManager控件然后在ContentPlaceHolder 位置加入