• 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)

    3.示例下载  点击下载


    4.参考资料

      网址:http://msdn.microsoft.com/zh-cn/library/cc295545.aspx

    如何刷新 UpdatePanel 控件
    以下列表介绍的 UpdatePanel 控件的属性设置决定在部分页呈现过程中面板的内容何时更新:
    * 如果 UpdateMode 属性设置为“Always”,则网页的任何地方发生的每个回发都会导致 UpdatePanel 控件内容进行更新其中包括其他 UpdatePanel控件内的控件引发的异步回发,以及不在 UpdatePanel控件内的控件引发的回发
    * 如果UpdateMode属性设置为“Conditional”,则当以下其中一项为真时UpdatePanel 控件的内容会得到更新:
    * 当回发是由该 UpdatePanel 控件的触发器所引起时
    * 当您显式调用 UpdatePanel 控件的 Update 方法时
    * 当 UpdatePanel 控件嵌套在另一个 UpdatePanel 控件内且父面板发生更新时
    * 当 ChildrenAsTriggers 属性设置为真且该 UpdatePanel 控件的任何子控件导致回发时嵌套的 UpdatePanel 控件的子控件不会导致外部 UpdatePanel 控件发生更新,除非它们被显式定义为父面板的触发器
    如果 ChildrenAsTriggers 属性设置为 false 且 UpdateMode 属性设置为“Always”,则会引发异常仅当 UpdateMode 属性设置为“Conditional”时,才能使用 ChildrenAsTriggers 属性
    使用嵌套的 UpdatePanel 控件
    UpdatePanel 控件可以嵌套如果父面板被刷新,则所有嵌套的面板都会刷新如果子面板被刷新,则仅该子面板会更新

  • 相关阅读:
    HDU 1863 畅通工程(Kruskal)
    HDU 1879 继续畅通工程(Kruskra)
    HDU 1102 Constructing Roads(Kruskal)
    POJ 3150 Cellular Automaton(矩阵快速幂)
    POJ 3070 Fibonacci(矩阵快速幂)
    ZOJ 1648 Circuit Board(计算几何)
    ZOJ 3498 Javabeans
    ZOJ 3490 String Successor(模拟)
    Java实现 LeetCode 749 隔离病毒(DFS嵌套)
    Java实现 LeetCode 749 隔离病毒(DFS嵌套)
  • 原文地址:https://www.cnblogs.com/footleg/p/1553893.html
Copyright © 2020-2023  润新知