• 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 控件可以嵌套如果父面板被刷新,则所有嵌套的面板都会刷新如果子面板被刷新,则仅该子面板会更新

  • 相关阅读:
    configure new Linux/Mac
    Python input()和raw_input()的区别
    python json读取txt文本 解析str 出错No JSON object could be decoded
    python TypeError: 'str' object does not support item assignment”
    python中对字典按照value排序
    腾讯实习面试被虐记
    软件里的实践出真知
    c链表实现遇到的错误
    Linux命令(2)
    yum的使用及配置
  • 原文地址:https://www.cnblogs.com/footleg/p/1553893.html
Copyright © 2020-2023  润新知