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 

原文地址:https://www.cnblogs.com/FallingAutumn/p/1291322.html