决定一个人富有的三个条件,一是出身,二是运气,三是努力
If you can dream it,you can do it! Nothing Impossible~

 

在做项目开发中,遇到了一个问题,就是动态创建控件后,在页面中点击另外的按钮后,无法根据控件名称找到创建好的控件,提示控件未实例化。

于是采用Ajax技术实现局部刷新,这就需要用到 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中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送

 

posted on 2009-06-10 15:00  ZEKELOVE  阅读(1620)  评论(0编辑  收藏  举报