2012-04-08 128 views
5

我有2個母版頁是nested.this是例如主主網頁代碼:如何訪問控件的主要母版頁從內容頁面嵌套母版頁

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPageMaster.master.cs" Inherits="MasterPageMaster" %> 

<!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></title> 
    <asp:ContentPlaceHolder id="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
    <asp:TextBox ID="txtMasterPageMaster" ClientIDMode="Static" runat="server"></asp:TextBox> 
    <div style="background-color:Aqua;height:40px;"> 
    Some Text 
    </div> 
    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> 

    </asp:ContentPlaceHolder> 
</div> 
</form> 

和嵌套母版頁:

<%@ Master Language="C#" MasterPageFile="~/MasterPageMaster.master" AutoEventWireup="true" 
CodeFile="MasterPageNested.master.cs" Inherits="MasterPageNested" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> 
    <asp:Panel runat="server" ID="panelMain" BackColor="lightyellow"> 
    <h2> 
     Child master</h2> 
    <asp:Panel runat="server" ID="panel1" BackColor="lightblue"> 
     <p> 
      This is child master content.</p> 
     <asp:ContentPlaceHolder ID="ChildContent1" runat="server" /> 
    </asp:Panel> 
    <asp:Panel runat="server" ID="panel2" BackColor="pink"> 
     <p> 
      This is child master content.</p> 
     <asp:ContentPlaceHolder ID="ChildContent2" runat="server" /> 
    </asp:Panel> 
    <br /> 
</asp:Panel> 
</asp:Content> 

,我創建基於此嵌套母版頁頁:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageNested.master" AutoEventWireup="true" CodeFile="PageMasterPageNested.aspx.cs" Inherits="PageMasterPageNested" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="ChildContent1" Runat="Server"> 
</asp:Content> 
    <asp:Content ID="Content2" ContentPlaceHolderID="ChildContent2" Runat="Server"> 
    <asp:Button ID="Button1" runat="server" Text="Button" Height="66px" 
    onclick="Button1_Click" Width="196px" /> 
</asp:Content> 

我想要點擊Button1獲取主母版頁的文本。

我該怎麼做?

回答

17

在PageMasterPageNested.aspx:

TextBox txtBox = this.Master.Master.FindControl("txtMasterPageMaster") as TextBox; 

應該工作。試一試。希望能幫助到你。

0

這在任何情況下都有效。特別是如果你不知道或關心你嵌套了多少個母版頁。希望它有助於:)

MasterPage tmp = this.Master; 
while (tmp.Master != null) 
{ 
    tmp = tmp.Master; 
} 

var control = tmp.FindControl("form1"); 
相關問題