AJAX——UpdatePanel
来源:互联网 发布:自学社软件 编辑:程序博客网 时间:2024/06/06 20:41
在学习AJAX这是第一个遇到的控件,有点陌生,所以对于没有接触过的东西还是去主动亲近一些比较好。学到后面的地方,发现这个控件很常用,几乎是所有用到局部刷新的地方都会有它的出现。
首先看一下UpdatePanel的结构:
<asp:ScriptManager ID="ScriptManager1" runat="server" > </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Block"> <ContentTemplate> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger /> <asp:PostBackTrigger /> </Triggers> </asp:UpdatePanel>
其次,什么是UpdatePanel呢?
通俗的说UpdatePanel是AJAX实现的一个组件,用于实现局部更新的。 UpdatePanel控件其实也是Ajax里用得最多的控件之一,网页上要局部更新的内容必须放在UpdatePanel控件里,他必须和ScriptManager控件一起使用。
UpdatePanel的重要属性如下:
属性
说明
ChildrenAsTriggers
当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。
RenderMode
表示UpdatePanel最终呈现的HTML元素。Block(默认)表示<div>,Inline表示<span>
UpdateMode
表示UpdatePanel的更新模式,有两个选项:Always和Conditional。Always是不管有没有Trigger,其他控件都将更新该UpdatePanel,Conditional表示只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。
Contente Template
用来定义UpdatePanel的内容
AsyncPostBackTrigge
用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送
conditional
只有满足如下某一条件时才更新panel的内容
如果设置UpdateMode="conditional" ChildrenAsTriggers="false"时候,子控件不允许触发更新
1),当panel中的某个控件引发PostBack时
2),当Panel指定的某个Trigger被引发时
下面我们做一个获得页面上异步更新的按钮的例子:
页面代码:
<asp:Button ID="Button1" runat="server" Text="Button" /><script language="javascript" type="text/javascript"> //针对更新的panels给出提示function highlightPanels(panels, clear){for (var i = 0; i < panels.length; i++){ var panel = panels[i]; //显示对比对panel.style.border = clear ? "solid 0px white" : "solid 2px red";panel.style.backgroundColor = clear ? "white" : "#d6dde8";}}//add_pageLoading事件在客户端在获得服务端结果,但是还没有对updatepanel更新的时候触发Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(function(sender, e) { //获取一个数组后马上就拷贝,进行保留,否则就被清空了,因为数组的对象是被引用的?? var panelsUpdating = Array.clone(e.get_panelsUpdating()); //强调panel显示highlightPanels(panelsUpdating);//2秒后清除强调的效果window.setTimeout( //这里的语法没看懂,参数调用???function(){ highlightPanels(panelsUpdating, true); },2000);});</script>
在页面load事件中我们获得异步更新的按钮
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(this.Button1);
结果显示:
其实学习控件无外乎就是它是什么、有什么用、怎么样的问题,然后我们看我们用在了哪这样一个过程,在AJAX学习中也是这样,及时是对于一个新的控件来说,我们按着这三步走就可以了。这不仅是学习一个新的控件的过程,对于学习也是这样,还要最后的总结。过程很重要,经历过过程的总结收获更重要。
- AJAX——UpdatePanel
- 【AJAX】——UpdatePanel控件的使用
- AJAX——ASP.NET AJAX(二)UpdatePanel
- 了解 ASP.NET AJAX UpdatePanel 触发器——ASP.NET AJAX学习笔记“出自msdn”
- [转]拥抱变化——从Atlas到ASP.NET AJAX(3):“仁慈”的UpdatePanel
- AJAX在ASP.NET中的应用(四)——探寻UpdatePanel的工作原理
- AJAX.NET之UpdatePanel
- AJAX 之 理解 UpdatePanel
- AJAX ,UpdatePanel乱码解决
- AJAX 之 UpdatePanel 控件
- AJAX 1.0(UpdatePanel)
- AJAX之UpdatePanel 篇
- ajax UpdatePanel用法
- updatepanel ajax pagerequestmanager
- AJAX UpdatePanel & Wizard control issues
- AJAX.NET的UpdatePanel应用
- ajax之updatePanel控件(实例)
- ajax 3.5 之updatepanel 失效
- c++重载运算符@
- 对C++中迭代器的分类的认识
- cocos2d-x 定时器selector的使用 :schedule的使用
- 3.1-1
- PHP 删除数组元素中的坑
- AJAX——UpdatePanel
- Could not find the main class: org.apache.catalina.startup.Boostrap. Program will exit.
- Java synchronized 关于锁的对象顺序问题
- cocos2d-x的scheduleSelector
- 欢迎使用CSDN-markdown编辑器
- 机器学习其实比你想的更简单
- 大盘暴跌是赚钱的什么好机会?
- UE4简单AI
- Poj 1861 Network