
<%
--创建对母版页的强类型引用,并指定到母版页的虚拟路径--%>
<%
@ MasterType VirtualPath="~/MasterPage/MasterPage.master" %>
<%
@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="Site" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>重新过一遍ASP.NET 2.0(C#)title>
head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
asp:ContentPlaceHolder>
div>
form>
body>
html>

<%
@ Master Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="MasterPage.master.cs" Inherits="MasterPage_MasterPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<p>
我是一个嵌套母版页
p>
<p>
母版页中的内容
<asp:DropDownList ID="ddlMaster" runat="server" DataSourceID="XmlDataSource1" DataTextField="text"
DataValueField="value" AutoPostBack="True" OnSelectedIndexChanged="ddlMaster_SelectedIndexChanged">
asp:DropDownList><asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Config/DropDownListData.xml">
asp:XmlDataSource>
p>
<p>
内容页中的内容
<asp:ContentPlaceHolder ID="cph" runat="Server" />
p>
asp:Content>
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;
public partial class MasterPage_MasterPage : System.Web.UI.MasterPage

{
protected void Page_Load(object sender, EventArgs e)
{
}

/**////
/// 设置ddlMaster的选中索引
/// 这个方法由内容页调用
///
///
public void SetddlMaster(int index)
{
ddlMaster.SelectedIndex = index;
}
protected void ddlMaster_SelectedIndexChanged(object sender, EventArgs e)
{
// ddlMaster的选中索引改变后,激发SelectedIndexChanged_ddlMaster事件
SelectedIndexChanged_ddlMaster(this, new CommandEventArgs(ddlMaster.SelectedItem.Text, ddlMaster.SelectedValue));
}
// 声明一个公共时间事件,让内容页用
public event CommandEventHandler SelectedIndexChanged_ddlMaster;
}

<%
@ Page Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true"
CodeFile="Test.aspx.cs" Inherits="MasterPage_Test" Title="MasterPage测试" %>

<%
--创建对母版页的强类型引用,并指定到母版页的虚拟路径--%>
<%
@ MasterType VirtualPath="~/MasterPage/MasterPage.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph" runat="Server">
<asp:dropdownlist id="ddlPage" runat="server" datasourceid="XmlDataSource1" datatextfield="text"
datavaluefield="value" autopostback="True" onselectedindexchanged="ddlPage_SelectedIndexChanged">
asp:dropdownlist>
<asp:xmldatasource id="XmlDataSource1" runat="server" datafile="~/Config/DropDownListData.xml">
asp:xmldatasource>
asp:Content>
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;
public partial class MasterPage_Test : System.Web.UI.Page

{
protected void Page_Load(object sender, EventArgs e)
{
// 在内容页用FindControl方法找到内容页中的控件
DropDownList ddl = new DropDownList();
ddl = Master.Master.FindControl("ContentPlaceHolder1").FindControl("cph").FindControl("ddlPage") as DropDownList;
Master.Master.FindControl("ContentPlaceHolder1").FindControl("cph").Controls.Add(new LiteralControl("
// 增加一个事件处理,该事件是在母版页定义的一个公共事件
Master.SelectedIndexChanged_ddlMaster += new CommandEventHandler(Master_SelectedIndexChanged_ddlMaster);
}
void Master_SelectedIndexChanged_ddlMaster(object sender, CommandEventArgs e)
{
// CommandEventArgs已经在母版页中的公共事件“SelectedIndexChanged_ddlMaster”中指定
string selectedText = e.CommandName;
string selectedValue = e.CommandArgument.ToString();
ddlPage.SelectedValue = selectedValue;
}
protected void ddlPage_SelectedIndexChanged(object sender, EventArgs e)
{
// 调用母版页的方法
Master.SetddlMaster(ddlPage.SelectedIndex);
}
}来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-330927/ ,如需转载,请注明出处,否则将追究法律责任。