您的位置:首页 > 其它

使用updatepanel与不使用的区别

2010-10-19 10:53 148 查看
其实是封装了ajax技术而成的一种控件,其目的是实现局部刷新。

一般触发服务器控件是都会回发从而刷新整个页面,造成服务器资源的浪费,如果数据量大的话,服务器的承受压力很大,最终会造成页面半天打不开。

采用了updatepanel后,他只刷新updatepanel内的数据,从而避免整个页面刷新,用户效果很好。

下面是使用updatepanel的一些使用方法:

需要在这控件之前加上 scriptManager 控件

UpdatePanel 控制页面的局部更新,这个更新功能依赖于scriptManger控件的EnablePartialRendering属性,如果这个属性设置为false局部更新会失去作用(scriptManger 控件的EnablePartialRendering属性的默认值为true不必刻意去设置)

主要属性:
1. ChildrenAsTriggers : 内容模板内的子控件的回发是否更新本模板(和UpdateMode的conditional有关)
2. UpdateMode : 内容模板的更新模式,有always和conditional两种

always:每次ajax PostBack或者普通的PostBack都能引起panel的更新 如果UpdatePanel设置为Always时,不能使用上面的ChildrenAsTriggers属性,强行使用会报错,是updatepanel默认的更新模式,和设置trigger触发器没有直接的关系。
conditional:只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。

只有满足如下某一条件时才更新panel的内容 :
如果设置UpdateMode="conditional" ChildrenAsTriggers="false"时候,子控件不允许触发更新
1). 当panel中的某个控件引发PostBack时
2). 当Panel指定的某个Trigger被引发时
3). RenderMode: 局部更新控件的呈现形式两中:Block(局部更新在客户端以div形式展现)和Inline(局部更新以span的形式展现在客户端)
子元素:
1. contentTemplate: 局部更新控件的内容模板,可以在其中添加任何控件
2. Triggers: 局部更新的触发器,包括俩中:异步回发(AsyncPostBackTrigger) 用来实现局部更新。普通回发(PostBackTrigger)和普通的一养,不管是否使用了局部更新控件,都会引起页面的全部更新。

AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;

PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送

 

 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息