母板页ASPX代码:
<%
...
@ Master Language="C#" AutoEventWireup="true" CodeBehind="AjaxMaster.master.cs" Inherits="UpdatepanelInManage.AjaxMaster"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > Untitled Page </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:ScriptManager ID ="ScriptManager1" runat ="server" >
</ asp:ScriptManager >
Change Date
< asp:Button ID ="DecrementButton" runat ="server" Text ="-" OnClick ="MasterButton_Click" />
< asp:Button ID ="IncrementButton" runat ="server" Text ="+" OnClick ="MasterButton_Click" />
< hr />
< asp:ContentPlaceHolder ID ="ContentPlaceHolder1" runat ="server" >
</ asp:ContentPlaceHolder >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > Untitled Page </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:ScriptManager ID ="ScriptManager1" runat ="server" >
</ asp:ScriptManager >
Change Date
< asp:Button ID ="DecrementButton" runat ="server" Text ="-" OnClick ="MasterButton_Click" />
< asp:Button ID ="IncrementButton" runat ="server" Text ="+" OnClick ="MasterButton_Click" />
< hr />
< asp:ContentPlaceHolder ID ="ContentPlaceHolder1" runat ="server" >
</ asp:ContentPlaceHolder >
</ div >
</ form >
</ body >
</ html >
母板页后台C#代码:
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace UpdatepanelInManage
... {
public partial class AjaxMaster : System.Web.UI.MasterPage
...{
public int Offset
...{
get
...{
return (int)(ViewState["Offset"] ?? 0);
}
set
...{
ViewState["Offset"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
...{
ScriptManager1.RegisterAsyncPostBackControl(DecrementButton);
ScriptManager1.RegisterAsyncPostBackControl(IncrementButton);
}
protected void MasterButton_Click(object sender, EventArgs e)
...{
switch (((Control)sender).ID)
...{
case "IncrementButton":
this.Offset = this.Offset + 1;
break;
case "DecrementButton":
this.Offset = this.Offset - 1;
break;
}
((UpdatePanel)ContentPlaceHolder1.FindControl("UpdatePanel1")).Update();
Calendar cal = ((Calendar)ContentPlaceHolder1.FindControl("Calendar1"));
DateTime newDateTime = DateTime.Today.Add(new TimeSpan(Offset, 0, 0, 0));
cal.SelectedDate = newDateTime;
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace UpdatepanelInManage
... {
public partial class AjaxMaster : System.Web.UI.MasterPage
...{
public int Offset
...{
get
...{
return (int)(ViewState["Offset"] ?? 0);
}
set
...{
ViewState["Offset"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
...{
ScriptManager1.RegisterAsyncPostBackControl(DecrementButton);
ScriptManager1.RegisterAsyncPostBackControl(IncrementButton);
}
protected void MasterButton_Click(object sender, EventArgs e)
...{
switch (((Control)sender).ID)
...{
case "IncrementButton":
this.Offset = this.Offset + 1;
break;
case "DecrementButton":
this.Offset = this.Offset - 1;
break;
}
((UpdatePanel)ContentPlaceHolder1.FindControl("UpdatePanel1")).Update();
Calendar cal = ((Calendar)ContentPlaceHolder1.FindControl("Calendar1"));
DateTime newDateTime = DateTime.Today.Add(new TimeSpan(Offset, 0, 0, 0));
cal.SelectedDate = newDateTime;
}
}
}
ContentPage ASPX页面代码:
<%
...
@ Page Language="C#" MasterPageFile="~/AjaxMaster.Master" AutoEventWireup="true" CodeBehind="Content.aspx.cs" Inherits="UpdatepanelInManage.Content" Title="Untitled Page"
%>
<% ... @ MasterType VirtualPath="AjaxMaster.Master" %>
< asp:Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server" >
Content Page < br />
< asp:UpdatePanel ID ="UpdatePanel1" runat ="server" UpdateMode ="Conditional" >
< ContentTemplate >
< asp:Calendar ID ="Calendar1" runat ="server" OnSelectionChanged ="Calendar1_SelectionChanged" ></ asp:Calendar >
</ ContentTemplate >
</ asp:UpdatePanel >
</ asp:Content >
<% ... @ MasterType VirtualPath="AjaxMaster.Master" %>
< asp:Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server" >
Content Page < br />
< asp:UpdatePanel ID ="UpdatePanel1" runat ="server" UpdateMode ="Conditional" >
< ContentTemplate >
< asp:Calendar ID ="Calendar1" runat ="server" OnSelectionChanged ="Calendar1_SelectionChanged" ></ asp:Calendar >
</ ContentTemplate >
</ asp:UpdatePanel >
</ asp:Content >
ContentPage 后台C#代码:
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace UpdatepanelInManage
... {
public partial class Content : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
DateTime newDateTime =
DateTime.Today.Add(new TimeSpan(Master.Offset, 0, 0, 0));
Calendar1.SelectedDate = newDateTime;
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
...{
DateTime selectedDate = Calendar1.SelectedDate;
//添加@ MasterType标记到页面中,以便可以作为强类型属性引用Master Page页面的Offset属性
// <%@ MasterType VirtualPath="AjaxMaster.Master" %>
Master.Offset = ((TimeSpan)Calendar1.SelectedDate.Subtract(DateTime.Today)).Days;
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace UpdatepanelInManage
... {
public partial class Content : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
DateTime newDateTime =
DateTime.Today.Add(new TimeSpan(Master.Offset, 0, 0, 0));
Calendar1.SelectedDate = newDateTime;
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
...{
DateTime selectedDate = Calendar1.SelectedDate;
//添加@ MasterType标记到页面中,以便可以作为强类型属性引用Master Page页面的Offset属性
// <%@ MasterType VirtualPath="AjaxMaster.Master" %>
Master.Offset = ((TimeSpan)Calendar1.SelectedDate.Subtract(DateTime.Today)).Days;
}
}
}