2012-04-08 33 views
5

tôi có 2 trang chủ mà nested.this là chính mã trang chủ ví dụ:Làm thế nào để truy cập điều khiển trong trang Thạc sĩ chính từ trang nội dung trong Nested Master Page

<%@ 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> 

và lồng trang chủ:

<%@ 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> 

và tôi có thể tạo một trang dựa trên trang chủ lồng nhau này:

<%@ 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> 

Tôi muốn nhấp vào Button1 tải văn bản của trang cái chính.

Tôi có thể làm như thế nào?

Trả lời

17

Trong PageMasterPageNested.aspx:

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

nên làm việc. Hãy thử một lần. Hy vọng nó giúp.

0

Tính năng này hoạt động trong mọi trường hợp. đặc biệt là nếu bạn không biết hoặc quan tâm có bao nhiêu trang cái bạn lồng nhau. Hy vọng nó sẽ giúp :)

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

var control = tmp.FindControl("form1"); 
Các vấn đề liên quan