AJAX——UpdatePanel

在学习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学习中也是这样,及时是对于一个新的控件来说,我们按着这三步走就可以了。这不仅是学习一个新的控件的过程,对于学习也是这样,还要最后的总结。过程很重要,经历过过程的总结收获更重要。

时间: 2024-10-11 06:04:06

AJAX——UpdatePanel的相关文章

jQuery AJAX 网页无刷新上传示例

新年礼,提供简单.易套用的 jQuery AJAX 上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 (不论是否 ASP.NET),内附的 FileUpload 控件,功能不足 (页面必须刷新.不支援 AJAX),或外观太丑被用户嫌弃 (却无法透过 CSS 自定义外观).网路上虽已有许多可用的示例,如: jQuery File Upload,但功能太强大.外观复杂,欲仅取出部分功能来引用,反而不易

jQuery+AJAX实现网页无刷新上传

新年礼,提供简单.易套用的 jQuery AJAX上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 (不论是否 ASP.NET),内附的 FileUpload 控件,功能不足 (页面必须刷新.不支援 AJAX),或外观太丑被用户嫌弃 (却无法透过 CSS 自定义外观).网路上虽已有许多可用的示例,如: jQuery File Upload,但功能太强大.外观复杂,欲仅取出部分功能来引用,反而不易.

ClientScript.RegisterStartupScript()与ScriptManager.RegisterStartupScript()

page类:1.页头中inherits标识继承于哪个类.partial标 识局部的,类的一部分,编译的时候 把同名的 partial合并成一个完整的class文件,然后编译成 中间文件.2..net页面的生命周期,控件的生命周期,生命周 期的应用.页面-属性-document-trace设为true, 运行页面可以看到跟踪信息.3.统一验证身份的方法,写一个验证的类文件(类 文件中添加this.Load+=new eventhander (thisLoad) void thisLoad(obje

ListView 使用方法(Asp.Net)

你需要使用一个独特的数据-bound控制. Fritz Onion 代码位置: ExtremeASPNET2008_03.exe (192 KB) Browse the Code Online  文件夹 ListView 基础 ListView 和 CSS 分页 排序.编辑.插入和删除 分组 開始运行 ListView 随 Visual Studio® 2008 一同公布的 ASP.NET 3.5 引入了新的数据绑定控件—ListView. 我知道您正在想什么:为什么 ASP.NET 里还须要还

ScriptManager和ClientScript的区别

ClientScript获取用于管理脚本.注册脚本和向页面添加脚本的ClientScriptManager对象. ScriptManager.RegisterStartupScript方法和ClientScript.RegisterStartupScript方法的区别. ScriptManager和ClientScriptManager的命名空间均是System.Web.UI. ClientScript是ClientScriptManager的对象,ClientScriptManager是类.

一个iframe注入漏洞,也是微软的 Application[&quot;error&quot;] 漏洞

最近学校进行安全等级评估,有人给我打电话,说我之前写的一个网站存在iframe注入漏洞,页面是error页面.我于是用netsparker扫描了自己的网站,果然发现error页面存在漏洞,我写网站的时候,为了方便知道当前程序错误,写了一个error页面,代码如下 if (!IsPostBack) { div_error.InnerHtml = Application["error"].ToString() + "<br/>" + "<a

Ajax系列之三:UpdatePanel

UpdatePanel控件也是Ajax里用得最多的控件之一,UpdatePanel控件是用来局部更新网页上的内容,网页上要局部更新的内容必须放在UpdatePanel控件里,他必须和上一次说的ScriptManager控件一起使用.现在来看UpdatePanel的属性 UpdatePanel重要的属性如下: 属性 说明 ChildrenAsTriggers 当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新. R

AJAX 怎样在一个UpDatePanel中刷新另一个updatePanel

原文:AJAX 怎样在一个UpDatePanel中刷新另一个updatePanel 在页面上(.aspx)<asp:UpdatePanel ID="MyID1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional"><ContentTemplate>          //html内容</ContentTemplate

ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel

ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel 本文简单介绍一下在母版页中使用UpdatePanel控件,翻译自官方文档. 主要内容 1.添加UpdatePanel控件到Content Page 2.通过Master Page刷新UpdatePanel 一.添加UpdatePanel控件到Content-Page 1.添加一个新的Master Page,并切换到设计视图. 2.在工具箱中AJAX Extensions标签下双击ScriptManager控件添加到页面