[置顶] 【AJAX】——UpdatePanel控件的使用


    简介

    UpdatePanel是AJAX中的一个很实用的控件,它可以用来创建丰富的局部更新Web应用程序,它的强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。


    定义

    下面是UpdatePanel控件的定义:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

    <ContentTemplate>

        <!---->

    </ContentTemplate>

    <Triggers>

        <asp:AsyncPostBackTrigger />

        <asp:PostBackTrigger />

    </Triggers>

</asp:UpdatePanel>

    重要属性

    属性1:ChildrenAsTriggers

       当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。

    属性2:RenderMode

       表示UpdatePanel最终呈现的HTML元素。Block(默认)表示<div>,Inline表示<span>。

    属性3:UpdateMode

       表示UpdatePanel的更新模式,有两个选项:Always和Conditional。Always是不管有没有Trigger,其他控件都将更新该UpdatePanel,Conditional表示只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。


    工作原理

    UpdatePanel的工作依赖于ScriptManager服务端控件和客户端PageRequestManager类,当ScriptManager中允许页面局部更新时,它会以异步的方式回传给服务器,与传统的整页回传方式不同的是只有包含在UpdatePanel中的页面部分会被更新,在从服务端返回HTML之后,PageRequestManager会通过操作DOM对象来替换需要更新的代码片段。


    例子

    根据所学到的知识,做了一个UpdatePanel控件的小demo,代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="test2.WebForm1" %>

<!DOCTYPE html>

<script runat="server">

    void Button1_Click(object sender, EventArgs e)

    {
        this.Label1.Text = "当前时间为:" + System.DateTime.Now.ToString();
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title>UpdatePanel Trigger Sample</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:ScriptManager ID="ScriptManager1" runat="server">

        </asp:ScriptManager>

    </div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div>
                    <asp:Button ID="Button1" runat="server" Text="更新当前时间" OnClick="Button1_Click"/>  
                    <br />
                    <asp:Label ID="Label1" runat="server" Text="" Font-Bold="True" Font-Size="Large"></asp:Label></div>
            </ContentTemplate>

            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1"/>
            </Triggers>

        </asp:UpdatePanel>
    </form>
</body>
</html>

    其实现的效果:

[置顶] 【AJAX】——UpdatePanel控件的使用_第1张图片

    每当点击“更新当前时间”按钮,其下的时间便会更新为当前时间,而不用刷新整个页面。



    AJAX学习的是王兴魁的视频,经师傅点播学习了这个控件的使用,通过小例子的实践感觉很实用,而且有很多优势,之后也会经常用到!





你可能感兴趣的:([置顶] 【AJAX】——UpdatePanel控件的使用)