Hey,
The technique is the same though. That label lives within the ContentPlaceHolder of the First Master Page, so from the actual content page, you have to go up through two master pages, and then start to come down again. This is code that I have just used, and know works.
First Master Page
Code:
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="MasterPage.master.vb" Inherits="NestedMasterPages.MasterPage" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Outer Master Page</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>Outer Master Page</h3>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Second Master Page
Code:
<%@ Master Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeBehind="MasterPage2.master.vb" Inherits="NestedMasterPages.MasterPage2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<h3>Inner Master Page</h3>
<%-- This is the label I assume you are referring to --%>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat=server>
</asp:ContentPlaceHolder>
</asp:Content>
Content Page
Code:
<%@ Page Language="vb" MasterPageFile="~/MasterPage2.master" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="NestedMasterPages._Default" %>
<asp:Content ID="Content1" runat="server"
contentplaceholderid="ContentPlaceHolder2">
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" />
</asp:Content>
Code Behind
Code:
Public Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Outer Master Page
Dim Outer_CP As ContentPlaceHolder
Outer_CP = TryCast(Me.Master.Master.FindControl("ContentPlaceHolder1"), _
ContentPlaceHolder)
Dim lbl As Label = TryCast(Outer_CP.FindControl("Label1"), Label)
lbl.Text = "Text was changed inside nested master page!"
End Sub
End Class
Hope that helps!!
Gary