master頁(yè)面的前臺(tái) <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:Panel ID="MasterPanel1" runat="server" GroupingText="主控頁(yè)面"> <asp:Button ID="MasterButton1" runat="server" Text="整頁(yè)更新" /> <asp:Button ID="MasterButton2" runat="server" Text="局部更新" OnClick="MasterButton2_Click" Width="128px" /> </asp:Panel> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> master頁(yè)面的后臺(tái)
protected void Page_Load(object sender, EventArgs e) { ScriptManager1.RegisterAsyncPostBackControl(MasterButton2); }
public DateTime LastUpdate { get { if(ViewState["LastUpdate"] == null) { return DateTime.Now; } else { return Convert.ToDateTime(ViewState["LastUpdate"]); } } set { ViewState["LastUpdate"] = value; } }
protected void MasterButton2_Click(object sender, EventArgs e) { LastUpdate = DateTime.Now; UpdatePanel up1 = (UpdatePanel)(ContentPlaceHolder1.FindControl("UpdatePanel1")); up1.Update(); } 注意這里因?yàn)橄M黜?yè)面的“局部更新”按鈕能引發(fā)異步更新內(nèi)容頁(yè)面中的UPDATEPANEL控件的內(nèi)容,因此必須用 ScriptManager1.RegisterAsyncPostBackControl(MasterButton2); 注冊(cè)該按鈕引發(fā)的事件。 要注意masterbutton2_click事件的寫法,調(diào)用內(nèi)容頁(yè)中的updatepanel控件的UPDATE方法來更新內(nèi)容。 然后在內(nèi)容頁(yè)中前臺(tái)中
<%@ Page Language="C#" MasterPageFile="~/ThirdMasterPage.master" AutoEventWireup="true" CodeFile="CH3_DemoForm040.aspx.cs" Inherits="CH3_DemoForm040" Title="如何于主控頁(yè)面中使用 UpdatePanel 控件" %>
<%@ MasterType VirtualPath="ThirdMasterPage.master" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <asp:Panel ID="Panel2" GroupingText="內(nèi)容頁(yè)面" runat="server"> <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> <ContentTemplate> <p> 上一次更新:<strong><%= Master.LastUpdate.ToString() %></strong></p> <asp:Button ID="ContentButton" OnClick="ContentButton_Click" runat="server" Text="局部更新"> </asp:Button> </ContentTemplate> </asp:UpdatePanel> </asp:Panel> </asp:Content>
后臺(tái)中,為其“局部更新”編寫相關(guān)的事件,以將當(dāng)前日期時(shí)間給主控頁(yè)面的lastupdate屬性 protected void ContentButton_Click(object sender, EventArgs e) { Master.LastUpdate = DateTime.Now; }
|