UpdatePanel 的更新与触发环境
UpdatePanel是进行页面部分回发更新用的,那UpdatePanel又会在什么时候会进行postback呢?
如下几种情况:
1、UpdateMode=Always(默认值)
只要页面有postback,不论该postback是哪个元素引起的(即:是UpdatePanel中,非UpdatePanel中的, 外部UpdatePanel还是内嵌的UpdatePanel中的),都会引发该UpdatePanel的postback
2、UpdatePanel为内嵌的(Nested) ,则Parent UpdatePanel进行postback时,它也要postback
3、UpdateMode=Conditional
a. 显示调用UpdatePanel的Update()方法,进行postback
b. 由UpdatePanel的Triggers属性中的一个元素时,也将引起postback
c. 当ChildrenAsTriggers=true时,UpdatePanel的直接子元素会引起postback(注意:是直接子元素,即 Nested UpdatePanel中的子元素不会引起Parent UpdatePanel的postback的)
总结:UpdatePanel的回发,是由其自身的属性 ChildrenAsTriggers 和 UpdateMode来决定的。这2种属性的不同组合,控制着UpdatePanel的postback. 有一种不被允许的组合:UpdateMode=always & ChildrenAsTriggers=false,该组合会引发异常InvalidOperationException