UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel简单的使用方法(第一篇)。
主要内容
1.UpdatePanel控件概述
2.UpdatePanel工作原理
3.ContentTemplate属性
4.ContentTemplateContainer属性
5.Triggers属性
一.UpdatePanel控件概述
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel工作原理和使用方法。简单的UpdatePanel定义如下:
<asp:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
</contenttemplate>
<triggers>
<asp:asyncpostbacktrigger>
<asp:postbacktrigger>
</triggers>
</asp:updatepanel>
UpdatePanel重要的属性如下:
属性
说明
ChildrenAsTriggers
当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。
RenderMode
表示UpdatePanel最终呈现的HTML元素。Block(默认)表示
,Inline表示
UpdateMode
表示UpdatePanel的更新模式,有两个选项:Always和Conditional。Always是不管有没有Trigger,其他控件都将更新该UpdatePanel,Conditional表示只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。
二.UpdatePanel工作原理
UpdatePanel的工作依赖于ScriptManager服务端控件(ASP.NET AJAX入门系列(2):使用ScriptManager控件)和客户端PageRequestManager类(Sys.WebForms.PageRequestManager,在后面的客户端类中会专门说到),当ScriptManager中允许页面局部更新时,它会以异步的方式回传给服务器,与传统的整页回传方式不同的是只有包含在UpdatePanel中的页面部分会被更新,在从服务端返回HTML之后,PageRequestManager会通过操作DOM对象来替换需要更新的代码片段。
看一下官方网站提供的UpdatePanel工作原理图:
三.ContentTemplate属性
Contente Template标签用来定义UpdatePanel的内容,在它里面可以放任何ASP.NET元素。如果你想要使用编程的手法来控制UpdatePanel中的内容,就需要使用ContenteTemplateContainer,下面会说到,先来看一个简单的ContentTemplate的例子。
<asp:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
<asp:calendar id="Calendar1" showtitle="True" runat="server">
Background:
<asp:dropdownlist id="ColorList" autopostback="True" onselectedindexchanged="DropDownSelection_Change" runat="server">
<asp:listitem selected="True" value="White">
White </asp:listitem>
<asp:listitem value="Silver">
Silver </asp:listitem>
<asp:listitem value="DarkGray">
Dark Gray </asp:listitem>
<asp:listitem value="Khaki">
Khaki </asp:listitem>
<asp:listitem value="DarkKhaki"> D
ark Khaki </asp:listitem>
</asp:dropdownlist>
</contenttemplate>
</asp:updatepanel>
事件代码:
<script runat="server">
void DropDownSelection_Change(Object sender, EventArgs e)
{
Calendar1.DayStyle.BackColor =
System.Drawing.Color.FromName(ColorList.SelectedItem.Value);
}
</script>
四.ContentTemplateContainer属性
如果要使用编程的手法去设置UpdatePanel中的内容,需要创建一个UpdatePanel,并且添加控件到ContentTemplateContainer,而不能直接添加控件到ContentTemplate,如果想直接设置ContentTemplate,则需要编写一个自定义的Template,并去实现位于System.Web.UI命名空间下的接口ITemplate。看一个简单的来自于官方网站的例子:
<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
UpdatePanel up1 = new UpdatePanel();
up1.ID = "UpdatePanel1";
up1.UpdateMode = UpdatePanelUpdateMode.Conditional;
Button button1 = new Button();
button1.ID = "Button1";
button1.Text = "Submit";
button1.Click += new EventHandler(Button_Click);
Label label1 = new Label();
label1.ID = "Label1";
label1.Text = "A full page postback occurred.";
up1.ContentTemplateContainer.Controls.Add(button1);
up1.ContentTemplateContainer.Controls.Add(label1);
Page.Form.Controls.Add(up1);
}
protected void Button_Click(object sender, EventArgs e)
{
((Label)Page.FindControl("Label1")).Text = "Panel refreshed at " +
DateTime.Now.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
UpdatePanel Added Programmatically Example
</head>
<body>
<asp:scriptmanager id="TheScriptManager" runat="server">
</body>
</html>
五.Triggers属性
在ASP.NET AJAX中有两种Triggers:分别为AsyncPostBackTrigger和PostBackTrigger,AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送。这一点跟Atlas有很大的区别,大家需要注意。看一个小例子,虽然两个Button都放在了UpdatePanel中,但是由于在PostBackTrigger中指定了Button2,所以它使用的仍然是整页回送。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<script runat="server">
void Button1_Click(object sender, EventArgs e)
{
this.Label1.Text = "更新时间:" + System.DateTime.Now.ToString();
}
void Button2_Click(object sender, EventArgs e)
{
this.Label1.Text = "更新时间:" + System.DateTime.Now.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
UpdatePanel Trigger Sample
</head>
<body>
<asp:scriptmanager id="ScriptManager1" runat="server">
</asp:scriptmanager>
<asp:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
<asp:button id="Button1" runat="server" text="异步回送" onclick="Button1_Click">
<asp:button id="Button2" runat="server" text="整页回送" onclick="Button2_Click">
<asp:label id="Label1" runat="server" text="当前时间" font-bold="True" font-size="Large"></asp:label>
</contenttemplate>
<triggers>
<asp:asyncpostbacktrigger controlid="Button1">
<asp:postbacktrigger controlid="Button2">
</triggers>
</asp:updatepanel>
</body>
</html>
分享到:
相关推荐
### ASP.NET UpdatePanel 的简单用法详解 #### 一、UpdatePanel 概述与基本用法 在ASP.NET AJAX框架中,局部更新是一项非常重要的功能,它能够实现页面部分区域的刷新而无需重新加载整个页面。这对于提升用户体验...
ASP.NET AJAX控件是微软为Web开发者提供的一种增强网页交互性和用户体验的技术。它结合了ASP.NET框架的强大功能和JavaScript库(Microsoft AJAX Library)的灵活性,允许开发者创建具有局部刷新、异步更新和丰富用户...
6. **Ajax支持**:ASP.NET AJAX扩展提供了UpdatePanel和ScriptManager等控件,实现了部分页面更新,从而改善用户体验,减少页面刷新。 7. **CSS和 Themes**:为了实现一致的外观和布局,开发者可以使用CSS样式和...
ASP.NET UpdatePanel 控件使用方法详解 UpdatePanel 控件是 ASP.NET 中的一个重要控件,用于实现页面的异步局部更新。它与 ScriptManager 控件联合使用,可以实现页面的局部更新,而不需要刷新整个页面。下面将详细...
### ASP.NET AJAX入门系列:使用UpdatePanel控件 #### 一、UpdatePanel控件概述 在探讨UpdatePanel之前,我们先简要回顾一下ASP.NET AJAX技术。ASP.NET AJAX是Microsoft推出的一套工具集,用于增强ASP.NET应用的...
通过UpdatePanel控件和其他相关控件,开发者可以实现更流畅的用户体验。 总之,ASP.NET服务器控件是构建高效、功能丰富的Web应用程序的关键元素。通过熟练掌握服务器控件的使用,开发者可以快速开发出满足各种需求...
- UpdatePanel控件:使用UpdatePanel实现页面部分更新,减少不必要的页面刷新。 5. 验证控件: - 验证控件的种类:比如RequiredFieldValidator、RegularExpressionValidator等,用于确保用户输入的有效性。 - ...
3. AJAX技术:介绍ASP.NET AJAX扩展,包括UpdatePanel、ScriptManager等,以及如何利用这些技术实现页面无刷新交互,提升用户体验。 4. 数据绑定和验证:讨论控件的数据源配置、数据绑定表达式以及验证控件的使用,...
UpdatePanel控件可实现异步回发,无需整个页面刷新。 六、实例实践 通过实际项目,如创建一个用户注册页面,包含各种控件的使用,验证功能的实现,以及数据绑定和存储过程的调用,来巩固理论知识。 总结,ASP.NET...
9. **Ajax控件**:ASP.NET AJAX库提供了UpdatePanel、ScriptManager等控件,实现了部分页面更新,提高用户体验。学习如何使用Ajax控件,可以创建更加动态和响应式的Web应用。 10. **数据源控件**:诸如...
Asp.Net服务器端控件是.NET框架中用于构建动态Web应用程序的关键组件。这些控件提供了一种方便的方式来创建交互式的用户界面,使开发者能够轻松地处理网页上的数据和功能。在Asp.Net中,服务器端控件是核心的开发...
【标题】:“ASP.NET AJAX控件之PopupControl” 在ASP.NET框架中,AJAX(Asynchronous JavaScript and XML)技术被广泛用于构建具有丰富用户体验的Web应用程序。AJAX控件工具包是微软为ASP.NET开发的一套扩展库,它...
ASP.NET服务器控件与组件开发是Web开发领域中的核心概念,尤其对于构建动态、交互性强的Web应用程序至关重要。ASP.NET是Microsoft .NET框架的一部分,它提供了丰富的服务器控件和组件库,使得开发者能够以声明式的...
这本书“ASP.NET3.5控件和组件开发技术”深入探讨了在该平台上开发控件和组件的关键技术,旨在帮助初学者和有经验的开发者提升技能,从简单的拖放控件转变为精通自定义组件的高手。 1. ASP.NET控件基础:书中首先会...
例如,UpdatePanel控件可以实现页面的部分更新,而无需完整刷新。 三、控件事件处理 ASP.NET控件支持各种事件,如Click、TextChanged等。开发者可以通过在代码-behind文件中定义事件处理程序来响应这些事件。事件...
此外,ASP.NET AJAX控件工具包提供了许多增强用户体验的控件,如UpdatePanel(实现局部刷新)和AjaxControlToolkit(提供丰富的AJAX功能控件)。 总而言之,ASP.NET控件是构建动态Web应用的重要工具。通过实际的...
在AJAX方面,书籍深入探讨了ASP.NET AJAX的使用,包括UpdatePanel、ScriptManager、Timer控件等,以及如何构建异步更新的应用程序,这有助于提升用户体验。此外,还涉及到了数据绑定技术,如数据源控件的使用、数据...
《ASP.NET服务器控件开发技术与实例》一书的光盘源程序代码是学习和深入理解ASP.NET服务器控件开发的宝贵资源。该资源由C#编程语言和Visual Studio 2005(VS2005)环境构建,旨在为开发者提供实战性的指导和示例,...