一个 Button 位于 UpdatePanel1 中,一个 Label 位于 UpdatePanel2 中,那么,Button 是否可以通过异步回送来更新 Label 呢?默认是可以的。


UpdateMode 可选值:Always(默认)、Conditional。

ChildrenAsTriggers 可选值:True(默认)、False。


说明,以下总结是除开了 AsyncPostBackTrigger 和 PostBackTrigger 的情况。

假设某 UpdatePanel 的 ID 为 up1,其属性分别为:

UpdateMode="Always" ChildrenAsTriggers="True"

  • up1 内部控件可对 up1 内部控件实现异步回送。
  • 其它 UpdatePanel 内部控件可对 up1 内部控件实现异步回送。
  • UpdatePanel 之外的控件不可对 up1 内部控件实现异步回送。

UpdateMode="Always" ChildrenAsTriggers="False"

  • 不允许这种设置。

UpdateMode="Conditional" ChildrenAsTriggers="True"

  • up1 内部控件可对 up1 内部控件实现异步回送。
  • 其它 UpdatePanel 内部控件不可对 up1 内部控件实现异步回送。
  • UpdatePanel 之外的控件不可对 up1 内部控件实现异步回送。

UpdateMode="Conditional" ChildrenAsTriggers="False"

  • up1 内部控件不可对 up1 内部控件实现异步回送。
  • 其它 UpdatePanel 内部控件不可对 up1 内部控件实现异步回送。
  • UpdatePanel 之外的控件不可对 up1 内部控件实现异步回送。

<asp:UpdatePanel>标签内只有<ContentTemplate>  <Triggers>两个标签

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <Triggers>
            </Triggers>
            <ContentTemplate>
            </ContentTemplate>
        </asp:UpdatePanel>

<Triggers>标签指的是刷新UpdatePanel的是位于UpdatePanel外面的触发UpdatePanel刷新的控件,当然当碰到下面的ChildrenAsTriggers="false" UpdateMode="Conditional" 情况,<trigger>标签内标注的触发控件依然有效

(ChildrenAsTriggers用来表明UpdatePanel里面的提交控件是否用来刷新)

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
            <ContentTemplate>
                <%= DateTime.Now %>
                <asp:Button ID="Button1" runat="server" Text="Button" />
                <asp:Button ID="Button2" runat="server" Text="Button" />
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" />
            </Triggers>
        </asp:UpdatePanel>

这样的指定Triggers的指定是有效的,

如果ChildrenAsTriggers为True,UpdateMode为Always那么,Triggers的指定是完全不必要的

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">时,UpdatePanel1中可回发控件(包括各类button以及可进行postback的控件),可引起局部刷新

Triggers标签可以指定不在UpdatePanel里面的回发控件和在另一个UpdatePanel的回发控件来触发回发

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers=false UpdateMode="Conditional">
            <ContentTemplate>
                <%= DateTime.Now %>
                <asp:Button ID="Button1" runat="server" Text="Button1" />
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="Button2" />
            </Triggers>
        </asp:UpdatePanel>
   
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
                <%= DateTime.Now %>
                <asp:Button ID="Button2" runat="server" Text="Button2" />
            </ContentTemplate>
        </asp:UpdatePanel>上面这段代码中,UpdatePanel1中的Button1会触发UpdatePanel2中的时间,因为没有指定UpdatePanel的UpdateMode为Conditional并且ChildrenAsTriggers为False

下面的内容待检验

2、UpdateMode属性和ChildrenAsTriggers属性:ChildrenAsTriggers默认为true。这两个属性其实是连起来使用的。假设有两个UPdatePanel,其中一个ChildrenAsTriggers为true,UpdateMode为Conditional时,这个UpdatePanel的更新会导致另外一个UpdatePanel的更新。如果ChildrenAsTriggers为false,UpdateMode为Conditional时,这个UpdatePanel的Content的内容不会更新,另一个UpdatePanel里的内容会更新。UpdateMode值为Always时,ChildrenAsTrigger不能为false,如果为true,它只更新自己内部的Content

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/firewolffeng/archive/2007/11/30/1908189.aspx

UpdatePanel 的 UpdateMode 和 ChildrenAsTriggers(较好的总结了前面几篇博客的内容)相关推荐

  1. C#中关于updatePanel与freeTextBox不兼容的问题 当页面刷子新后,ftb不能输入内容的解决办法

    C#中关于updatePanel与freeTextBox不兼容的问题 如何解决呢个问题? 解决方案 在使用freeTextBox的那个页面(当然那个页面时有updatePanel的前提下)的后台代码中 ...

  2. asp.net ajax技巧6

    今天继续学习章立民的书.讲到两个updatepannel的嵌套.比如下面的例子    <asp:ScriptManager ID="ScriptManager" runat= ...

  3. ASP.NET中PostBack和ViewState

    ASP.NET中PostBack和ViewState 关于PostBack,我曾经也写过一篇博客<深入理解doPostBack>.在这篇文章里有对PostBack进行了一些研究,现在看来研 ...

  4. Kafka2.5->Flink1.12->Mysql8(Jark实验改为DDL形式)

    ##############################################实验目的和环境############################################### ...

  5. ASP.NET WebForm Best Practice 之PostBack

    关于PostBack,我曾经也写过一篇博客<深入理解 __doPostBack>.在这篇文章里有对PostBack进行了一些研究,现在看来研究的还是不够深入.不过从原理上来说,ASP.NE ...

  6. Sqoop数据的导入导出与job作业

    1. Sqoop导入数据 站在hadoop的立场看: import:数据导入.RDBMS----->Hadoop export:数据导出.Hadoop---->RDBMS 创建表 SET ...

  7. UpdatePanel 学习之 ChildrenAsTriggers

    上一篇讲述了如何使用UpdatePanel的UpdateMode属性限制只有本UpdatePanel里面的控件所引发的更新才使UpdatePanel更新有效.那么与这个属性很相关的一个属性就是Chil ...

  8. UpdatePanel 属性学习之 UpdateMode

    上一篇文章说明了在UpdatePanel中RenderMode的学习,这个属性主要是在客户端如何解析UdpatePanel,是生成div,还是生成span,我们也介绍了两者到底有什么样的区别.这一篇文 ...

  9. UpdatePanel AsyncPostBackTrigger PostBackTrigger 区别

    1.使用代码的方式进行编写. 2. Trigger属性: 1)AsyncPostBackTrigger :只是UpdatePanel中指定的进行了局部刷新. 2)PostBackTrigger : 整 ...

最新文章

  1. HTML-CSS-JS-PHP的顺序及相关网址(转)
  2. 停笔几天,休息一下也顺便思考一下人生
  3. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结
  4. c++ split 方法(转)
  5. 【渝粤题库】广东开放大学 基础写作 形成性考核
  6. Android开发学习笔记-GridView的动态显示
  7. r语言 append_Python爬取近十年TIOBE编程语言热度数据并可视化可视化
  8. Matlab系列教程_数值计算_求和(积)_求累加(积)
  9. linux fcntl函数,Linux C 学习之 - fcntl 函数
  10. 微信小程序:全新圣诞节头像框制作生成微信小程序源码下载支持多模板
  11. 线缆干扰编码器输出结果,双绞线引起的干扰编码器问题
  12. 使用阿里云OSS对象存储搭建个人图床
  13. 电脑鼠标右键应用卡死、转圈圈、资源管理器关闭等问题
  14. ppd文件下载 linux,Linux系统R230,R270,R330,L380打印机驱动下载爱普生喷墨打印机PPD文件...
  15. MATLAB | 全网唯一,双变量及三变量映射图表的MATLAB绘制
  16. 单片机c语言reti的用法,基于51单片机中断跳出指令“RETI”浅议
  17. fckeditor的皮肤系列:皮肤更换
  18. Java Security(JCE基本概念)
  19. 求 n+nn+nnn+nnnn+........的和(java写法)
  20. IDEA类左侧有一个对勾,如何去掉对勾?

热门文章

  1. 使用apache搭建tomcat集群
  2. flask-sqlalchemy分表解决方案
  3. crs-4124   Oracle 11gR2 RAC ohasd failed to start 解决方法
  4. 体验式培训之“铁人七项”
  5. Docker Compose运行MySQL、Redis服务
  6. 一款开源免费且快速,高效和安全的跨平台备份程序:Restic使用教程
  7. Fedora/RedHat上搭建MariaDB
  8. BGP——BGP优化技术(总结+配置)
  9. python怎么安装beautifulsoup,python – 安装BeautifulSoup
  10. 用python代替人脑运算24点游戏