代码示例:在母版页中使用UpdatePanel

论坛 期权论坛 脚本     
匿名技术用户   2021-1-14 17:33   52   0

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

}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP