`
JessicaCao
  • 浏览: 36407 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

ASP.net UpdatePanel控件

阅读更多
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的简单用法

    ### ASP.NET UpdatePanel 的简单用法详解 #### 一、UpdatePanel 概述与基本用法 在ASP.NET AJAX框架中,局部更新是一项非常重要的功能,它能够实现页面部分区域的刷新而无需重新加载整个页面。这对于提升用户体验...

    asp.net Ajax控件

    ASP.NET AJAX控件是微软为Web开发者提供的一种增强网页交互性和用户体验的技术。它结合了ASP.NET框架的强大功能和JavaScript库(Microsoft AJAX Library)的灵活性,允许开发者创建具有局部刷新、异步更新和丰富用户...

    asp.net服务器控件高级编程(带源文件)

    6. **Ajax支持**:ASP.NET AJAX扩展提供了UpdatePanel和ScriptManager等控件,实现了部分页面更新,从而改善用户体验,减少页面刷新。 7. **CSS和 Themes**:为了实现一致的外观和布局,开发者可以使用CSS样式和...

    updatepanel控件使用方法

    ASP.NET UpdatePanel 控件使用方法详解 UpdatePanel 控件是 ASP.NET 中的一个重要控件,用于实现页面的异步局部更新。它与 ScriptManager 控件联合使用,可以实现页面的局部更新,而不需要刷新整个页面。下面将详细...

    ASP.NET AJAX入门系列:使用UpdatePanel控件

    ### ASP.NET AJAX入门系列:使用UpdatePanel控件 #### 一、UpdatePanel控件概述 在探讨UpdatePanel之前,我们先简要回顾一下ASP.NET AJAX技术。ASP.NET AJAX是Microsoft推出的一套工具集,用于增强ASP.NET应用的...

    ASP.NET服务器控件

    通过UpdatePanel控件和其他相关控件,开发者可以实现更流畅的用户体验。 总之,ASP.NET服务器控件是构建高效、功能丰富的Web应用程序的关键元素。通过熟练掌握服务器控件的使用,开发者可以快速开发出满足各种需求...

    asp.net服务器控件与组件开发

    - UpdatePanel控件:使用UpdatePanel实现页面部分更新,减少不必要的页面刷新。 5. 验证控件: - 验证控件的种类:比如RequiredFieldValidator、RegularExpressionValidator等,用于确保用户输入的有效性。 - ...

    庖丁解牛—纵向切入ASP.NET3.5控件和组件开发技术(pdf).rar

    3. AJAX技术:介绍ASP.NET AJAX扩展,包括UpdatePanel、ScriptManager等,以及如何利用这些技术实现页面无刷新交互,提升用户体验。 4. 数据绑定和验证:讨论控件的数据源配置、数据绑定表达式以及验证控件的使用,...

    ASP.NET服务器控件开发技术与实例

    UpdatePanel控件可实现异步回发,无需整个页面刷新。 六、实例实践 通过实际项目,如创建一个用户注册页面,包含各种控件的使用,验证功能的实现,以及数据绑定和存储过程的调用,来巩固理论知识。 总结,ASP.NET...

    学习总结asp.net常用控件实例

    9. **Ajax控件**:ASP.NET AJAX库提供了UpdatePanel、ScriptManager等控件,实现了部分页面更新,提高用户体验。学习如何使用Ajax控件,可以创建更加动态和响应式的Web应用。 10. **数据源控件**:诸如...

    Asp.Net服务器端控件

    Asp.Net服务器端控件是.NET框架中用于构建动态Web应用程序的关键组件。这些控件提供了一种方便的方式来创建交互式的用户界面,使开发者能够轻松地处理网页上的数据和功能。在Asp.Net中,服务器端控件是核心的开发...

    [A031]ASP.NET AJAX控件之PopupControl

    【标题】:“ASP.NET AJAX控件之PopupControl” 在ASP.NET框架中,AJAX(Asynchronous JavaScript and XML)技术被广泛用于构建具有丰富用户体验的Web应用程序。AJAX控件工具包是微软为ASP.NET开发的一套扩展库,它...

    ASP.NET服务器控件与组件开发

    ASP.NET服务器控件与组件开发是Web开发领域中的核心概念,尤其对于构建动态、交互性强的Web应用程序至关重要。ASP.NET是Microsoft .NET框架的一部分,它提供了丰富的服务器控件和组件库,使得开发者能够以声明式的...

    ASP.NET3.5控件和组件开发技术(pdf

    这本书“ASP.NET3.5控件和组件开发技术”深入探讨了在该平台上开发控件和组件的关键技术,旨在帮助初学者和有经验的开发者提升技能,从简单的拖放控件转变为精通自定义组件的高手。 1. ASP.NET控件基础:书中首先会...

    asp.net控件笔记 asp.net控件笔记

    例如,UpdatePanel控件可以实现页面的部分更新,而无需完整刷新。 三、控件事件处理 ASP.NET控件支持各种事件,如Click、TextChanged等。开发者可以通过在代码-behind文件中定义事件处理程序来响应这些事件。事件...

    asp.net控件练习

    此外,ASP.NET AJAX控件工具包提供了许多增强用户体验的控件,如UpdatePanel(实现局部刷新)和AjaxControlToolkit(提供丰富的AJAX功能控件)。 总而言之,ASP.NET控件是构建动态Web应用的重要工具。通过实际的...

    庖丁解牛—纵向切入ASP.NET3.5控件和组件开发技术(pdf)

    在AJAX方面,书籍深入探讨了ASP.NET AJAX的使用,包括UpdatePanel、ScriptManager、Timer控件等,以及如何构建异步更新的应用程序,这有助于提升用户体验。此外,还涉及到了数据绑定技术,如数据源控件的使用、数据...

    《ASP.NET服务器控件开发技术与实例》一书光盘源程序代码

    《ASP.NET服务器控件开发技术与实例》一书的光盘源程序代码是学习和深入理解ASP.NET服务器控件开发的宝贵资源。该资源由C#编程语言和Visual Studio 2005(VS2005)环境构建,旨在为开发者提供实战性的指导和示例,...

Global site tag (gtag.js) - Google Analytics