上一篇文章说明了在UpdatePanel中RenderMode的学习,这个属性主要是在客户端如何解析UdpatePanel,是生成div,还是生成span,我们也介绍了两者到底有什么样的区别。这一篇文章我主要是想说一下UpdateMode属性的作用。再次声明一下,这主要是对赵老师的视频所做的笔记,这样,有利于我对接收到的知道的再次加工,可以有利于我对知识的理解。
    UpdateMode先从字面上理解一下,就是更新模式的意思。他有两个属性值,一个是always ,另外一个是conditional。到底是怎么回事呢,我还是用赵老师的事例先来说明一下问题。在页面中拖两个updatapanel上去,如下所示:
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate >
            <%=DateTime.Now %>
            <asp:Button ID="Button1" runat="server" Text="Button" />
        </ContentTemplate>
        </asp:UpdatePanel>
        <hr />
        <asp:UpdatePanel ID="UpdatePanel2" UpdateMode ="conditional"  runat="server">
        <ContentTemplate >
            <%=DateTime.Now %>
            <asp:Button ID="Button2" runat="server" Text="Button" />
        </ContentTemplate>
        </asp:UpdatePanel>
    在第一个updatepanel里面包含一个显示当前时间和一个按钮,显示时间主要是用datetime类来实现,按钮的作用是触发更新页面的事件,虽然这个按钮事件什么都没写,但是只要你一点击,就会给服务器发送一个请求,当得到回应的时候,就会刷新一下页面。
    第二个updatepanel,和第一个updatepanel唯一不同的是把他的UpdateMode属性设置成了conditional。第一个不设置的原因是当updatepanel没有设置updateMode属性的时候,则默认为always 。运行这个程序,则可以得到如下的界面:

下面我描述一下执行的效果,当点击第一个按钮的时候,则只有横线上面的时间会更新,当点击下面的按钮的时候,则两个时间都会更新。为什么会这样呢,我们设置了横线上方的updatepanel的updateMode为always,下面的updateMode属性为condicational。从字面意思上理解一下,第一个updatepanel为总是更新,第二个是只有满足了条件才会更新,从上面执行的效果也可以看得到,第一个里面的时间不管是按点击哪一个按钮,总是会更新,下面的时间,只有点击下面的按钮才会更新,那么这个条件是什么呢?可能大家已经理会的到了。下面我就把这层窗户纸点破。如果设置为always,则意味着在页面上的任何控件的操作都会使updatepanel里面的数据进行更新,而设置为condicational,则只有在本updatepanel里面的控件引发的操作才会更新。哦!!一下子天变成了蓝色。
    我再来扩展的说一下。ajax技术给我们带来的体验就是可以局部更新,在asp.Net里面,这个updatepanel给我们带来的之一的感觉就是局部刷新——在updatepanel里面的数据改变了,其它地方的数据没有改变。呵呵。但是如果把updatepanel的updateMode设置成alway的进时候,虽然在这个程序中感观上带来的感觉是页面也没有刷新,但给我们带来的问题就是在我们不希望刷新的地方刷新了,比如说上面的例子中,我点第二个按钮的时候,可能我希望改变的只是第二个updatepanel里面的数据,可是很不幸。再展升一下,这样导致的后果是什么呢,加大了数据的通信量,当页面很大的时候,这个体验就会给我们带来很慢的感觉。所以大家都说,最好把updateMode设置成为condicational。这样,在我要你改变的时候,你才能改变,你不能被其它的因素左右,一个很自私的作法,但是效果却很好。

UpdatePanel 属性学习之 UpdateMode相关推荐

  1. UpdatePanel控件的简单属性学习

    一.RenderMode属性,值为Block(默认值)为Inline  在页面中输入以下代码: <asp:ScriptManager ID="ScriptManager1"  ...

  2. JavaScript之ClassName属性学习

    在前面的style属性学习中,知道了通过style属性可以控制元素的样式,从而实现了行为层通过DOM的style属性去干预变现层显示的目地,但是这种就是不好的,而且为了实现通过DOM脚本设置的样式,你 ...

  3. 计算机颜色系统是三大色彩体系,色彩体系三大属性学习

    色彩体系三大属性学习 色彩的三要素--色相.明度.纯度 色相(表,表现):即色彩的相貌和特征.自然界中色彩的种类很多,色相指色彩的种类和名称.如:红.橙.黄.绿.青.蓝.紫等等颜色的种类变化就叫色相. ...

  4. html5 scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记...

    全文参考:https://github.com/iuap-design/blog/issues/38 .MDN clientHeight,只读 clientHeight可以用公式 CSS height ...

  5. html 滚动条 scrolltop scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记...

    全文参考:https://github.com/iuap-design/blog/issues/38 .MDN clientHeight,只读 clientHeight可以用公式 CSS height ...

  6. css flex属性学习笔记

    参考文献 flex: 1 0calc((100% / min(var(--cx-active-view), var(--cx-max-views))) -var(--cx-split-gutter)) ...

  7. HTML5新增属性学习笔记

    1.form属性 表单内的从属元素,可以写在表单外部.可以通过指定元素的form属性来声明元素所属表单.form的属性值为表单的id. 1 <form id="testForm&quo ...

  8. CSS浮动(float)属性学习经验分享

    作为一名前端开发的初学者,CSS的布局定位无疑成为了一个难点,这两天通过看一些博客的技术分享和自己的反复实践,大概领悟到了一些float的"门道". 下面就通过一些例子来归纳总结一 ...

  9. Silverlight:Dependency Property(依赖属性)学习笔记

    学习SL/WPF,Dependency Properties(依赖属性)是一个全新(陌生)但又无法回避的概念. http://www.wpftutorial.net/DependencyPropert ...

最新文章

  1. PHP创建日志记录(已封装)
  2. SpringCloud服务消费者第一次调用出现超时问题的解决方案
  3. Oracle EBS渗透测试工具
  4. 【Python实战】机型自动化标注(搜狗爬虫实现)
  5. LeetCode 215. 数组中的第K个最大元素(快速排序)
  6. 拉普拉斯时域卷积定理_如何证明频域卷积定理
  7. 代码分析 | 单细胞转录组clustering详解
  8. 【渝粤教育】广东开放大学 机械制造基础 形成性考核 (54)
  9. Vuex的官方文档笔记
  10. openfire-好友管理实现好友添加及分组管理
  11. sqlite内存数据库和文件数据库的同步
  12. 工业相机 - - 线阵相机
  13. recovery 工作流程
  14. .so has text relocations. This is wasting memory and prevents security hardening. Please fix.
  15. python七段数码管绘制实验报告_python—绘制七段数码管
  16. 2020年吉林省考申论指导:解题思路总结
  17. 每次打开EXCEL文件都会出现一个空白sheet1窗口
  18. 【Python代码】文件查重(02)-简易版
  19. 查找、替换使用正则表达式
  20. 华为Atlas 500智能小站如何使能边缘计算?

热门文章

  1. JavaScript 属性介绍
  2. 封装的一个http请求struct,包含:头、cookie、代理、超时、本地ip切换
  3. Vue.js 内部运行机制之总结 常见问题解答
  4. Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技
  5. oracle生成excle报表,oracle自动生成excel报表(时间为变量,条件含变量)
  6. 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)
  7. Python每日一练(9)-批量爬取B站小视频
  8. Let‘s Encrypt 免费Https证书
  9. Java浅克隆和深克隆
  10. inode索引节点---初识