UpdatePanel 属性学习之 UpdateMode
上一篇文章说明了在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相关推荐
- UpdatePanel控件的简单属性学习
一.RenderMode属性,值为Block(默认值)为Inline 在页面中输入以下代码: <asp:ScriptManager ID="ScriptManager1" ...
- JavaScript之ClassName属性学习
在前面的style属性学习中,知道了通过style属性可以控制元素的样式,从而实现了行为层通过DOM的style属性去干预变现层显示的目地,但是这种就是不好的,而且为了实现通过DOM脚本设置的样式,你 ...
- 计算机颜色系统是三大色彩体系,色彩体系三大属性学习
色彩体系三大属性学习 色彩的三要素--色相.明度.纯度 色相(表,表现):即色彩的相貌和特征.自然界中色彩的种类很多,色相指色彩的种类和名称.如:红.橙.黄.绿.青.蓝.紫等等颜色的种类变化就叫色相. ...
- html5 scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记...
全文参考:https://github.com/iuap-design/blog/issues/38 .MDN clientHeight,只读 clientHeight可以用公式 CSS height ...
- html 滚动条 scrolltop scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记...
全文参考:https://github.com/iuap-design/blog/issues/38 .MDN clientHeight,只读 clientHeight可以用公式 CSS height ...
- css flex属性学习笔记
参考文献 flex: 1 0calc((100% / min(var(--cx-active-view), var(--cx-max-views))) -var(--cx-split-gutter)) ...
- HTML5新增属性学习笔记
1.form属性 表单内的从属元素,可以写在表单外部.可以通过指定元素的form属性来声明元素所属表单.form的属性值为表单的id. 1 <form id="testForm&quo ...
- CSS浮动(float)属性学习经验分享
作为一名前端开发的初学者,CSS的布局定位无疑成为了一个难点,这两天通过看一些博客的技术分享和自己的反复实践,大概领悟到了一些float的"门道". 下面就通过一些例子来归纳总结一 ...
- Silverlight:Dependency Property(依赖属性)学习笔记
学习SL/WPF,Dependency Properties(依赖属性)是一个全新(陌生)但又无法回避的概念. http://www.wpftutorial.net/DependencyPropert ...
最新文章
- PHP创建日志记录(已封装)
- SpringCloud服务消费者第一次调用出现超时问题的解决方案
- Oracle EBS渗透测试工具
- 【Python实战】机型自动化标注(搜狗爬虫实现)
- LeetCode 215. 数组中的第K个最大元素(快速排序)
- 拉普拉斯时域卷积定理_如何证明频域卷积定理
- 代码分析 | 单细胞转录组clustering详解
- 【渝粤教育】广东开放大学 机械制造基础 形成性考核 (54)
- Vuex的官方文档笔记
- openfire-好友管理实现好友添加及分组管理
- sqlite内存数据库和文件数据库的同步
- 工业相机 - - 线阵相机
- recovery 工作流程
- .so has text relocations. This is wasting memory and prevents security hardening. Please fix.
- python七段数码管绘制实验报告_python—绘制七段数码管
- 2020年吉林省考申论指导:解题思路总结
- 每次打开EXCEL文件都会出现一个空白sheet1窗口
- 【Python代码】文件查重(02)-简易版
- 查找、替换使用正则表达式
- 华为Atlas 500智能小站如何使能边缘计算?
热门文章
- JavaScript 属性介绍
- 封装的一个http请求struct,包含:头、cookie、代理、超时、本地ip切换
- Vue.js 内部运行机制之总结 常见问题解答
- Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技
- oracle生成excle报表,oracle自动生成excel报表(时间为变量,条件含变量)
- 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)
- Python每日一练(9)-批量爬取B站小视频
- Let‘s Encrypt 免费Https证书
- Java浅克隆和深克隆
- inode索引节点---初识