母板页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
>
母板页后台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;
}
}
}
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
>
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;
}
}
}
|
|