UpdatePanel的各种情况

UpdatePanel的各种情况(分为:按钮和UpdatePanel)
1.按钮的3个位置
   1.按钮在所有UpdatePanel外部,刷新整个页面(所有的UpdatePanel都会刷新,不管是否Conditional)
   2.按钮在UpdatePanel内部的按钮(会被识别为AsyncPostBack)
      1.能够刷新本UpdatePanel(不管UpdateModel为Always还是Conditional)
          其中,如果是Conditional,必须ChildrenAsTriggers不为false,为false的情况后面会提到
      2.能够刷新其他UpdatePanel(当其UpdateModel为Always)
      3.不能够刷新其他UpdatePanel(当其UpdateModel为Conditional)
      4.不能够刷新UpdatePanel外的部分
   3.按钮在任何位置
      1.可以调用一个UpdatePanel的Update()方法(更新其内容)
         1.在页面的load事件里
                ScriptManager ScriptManager1 = (ScriptManager)Master.FindControl("ScriptManager1");
                ScriptManager1.RegisterAsyncPostBackControl(btn_MatchDish);
         2.在按钮的事件里直接 UpdatePanel2.Update();(这样就能异步更新UpdatePanel2了)
      2.可以显示定义为一个UpdatePanel的触发器(更新其内容)
          (即:这个按钮是一个UpdatePanel的ControlId)

2.UpdatePanel(涉及到UpdateModel为Always和Conditional)
   1.Always表示网页任何一个地方回发时,都会导致UpdatePanel控件内容更新
     包括其他UpdatePanel控件内的控件引发的异步回发
   2.Conditional 控件的内容会得到更新:
      1.当回发是由该 UpdatePanel 控件的触发器所引起时
      2.当您显式调用 UpdatePanel 控件的 Update 方法时
      3.当 UpdatePanel 控件嵌套在另一个 UpdatePanel 控件内且父面板发生更新时 
      4.当 ChildrenAsTriggers 属性,为true时(默认)且该 UpdatePanel 控件的任何子控件导致回发时。
            (即:UpdatePanel内部的按钮,能够更新本UpdatePanel)
   3.ChildrenAsTriggers
      1.为True(默认),如果涉及到ChildrenAsTriggers属性,就意味着要设置为false,否则,不必出现(因为默认True)
                     所以,一般只讨论ChildrenAsTriggers=false的情况
      2.为false(UpdatePanel的UpdateMode属性必须为Conditional)
          1.适用情况:具有两个UpdatePanel控件,并且希望来自第一个面板的回发更新第二个的内容,但不更新自己的内容
              比如:UpdatePanel_1(ChildrenAsTriggers=false)内有Button1
                   UpdatePanel_2(ControlId="Button1")
                   当点Button1的时候,UpdatePanel_2会更新,而UpdatePanel_1不会更新
   4.UpdatePanel嵌套
      1.如果父面板被刷新(ChildrenAsTriggers=true),则父面板和子面板都会刷新,
        如果父面板被刷新(ChildrenAsTriggers=false),则父面板和子面板都不会刷新
      2.如果子面板被刷新,则仅该子面板会更新,除非它们被显式定义为父面板的触发器(则父子都会刷新)

         (显式为父面板触发器:当子UpdatePanel里的按钮是父UpdatePanel的ControlId)


转载自:http://www.cnblogs.com/jason-xiao/archive/2009/05/17/1458939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值