Como: Conteúdo de páginas mestras do ASP.NET de referência
Você pode escrever código em páginas de conteúdo que fazem referência às propriedades, métodos e controles da página mestra, com algumas restrições.A regra para as propriedades e métodos é que você pode referi-los se eles são declarados como membros Públicos da página mestra.Isso inclui propriedades públicas e métodos públicos.Você pode fazer referência a controles na página mestra independentemente de referência a membros públicos.
Para fazer referência a um membro público sobre a página mestra
Adicione uma diretiva @ MasterType na página de conteúdo.Na diretiva, defina o atributo VirtualPath como o local do página mestra, como neste exemplo:
<%@ MasterType virtualpath="~/Masters/Master1.master" %>
Esta diretiva faz com que a propriedade Master da página de conteúdo seja altamente digitado.
Escreva código que use o membro público da página mestra como um membro da propriedade Master, como no exemplo, que atribui o valor de uma propriedade pública denominada CompanyName a partir da página mestra a um caixa de texto na página de conteúdo:
CompanyName.Text = Master.CompanyName
CompanyName.Text = Master.CompanyName;
Para fazer referência a um controle na página mestra
Use o método FindControl, usando o valor retornado pela propriedade Master como o contêiner de nomeação.
O exemplo de código a seguir mostra como usar o método FindControl para obter uma referência a dois controles na página mestra, um controle TextBox e um controle Label.Como o controle TextBox está dentro de um controle ContentPlaceHolder, você deve primeiro obter uma referência para o ContentPlaceHolder e então usar o método FindControl para localizar o controle TextBox.
Sub Page_Load() Dim mpContentPlaceHolder As ContentPlaceHolder Dim mpTextBox As TextBox mpContentPlaceHolder = _ CType(Master.FindControl("ContentPlaceHolder1"), _ ContentPlaceHolder) If Not mpContentPlaceHolder Is Nothing Then mpTextBox = CType(mpContentPlaceHolder. _ FindControl("TextBox1"), TextBox) If Not mpTextBox Is Nothing Then mpTextBox.Text = "TextBox found!" End If End If ' Gets a reference to a Label control not in a ' ContentPlaceHolder Dim mpLabel As Label mpLabel = CType(Master.FindControl("masterPageLabel"), Label) If Not mpLabel Is Nothing Then Label1.Text = "Master page label = " + mpLabel.Text End If End Sub
void Page_Load() { // Gets a reference to a TextBox control inside // a ContentPlaceHolder ContentPlaceHolder mpContentPlaceHolder; TextBox mpTextBox; mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1"); if(mpContentPlaceHolder != null) { mpTextBox = (TextBox) mpContentPlaceHolder.FindControl("TextBox1"); if(mpTextBox != null) { mpTextBox.Text = "TextBox found!"; } } // Gets a reference to a Label control that not in // a ContentPlaceHolder Label mpLabel = (Label) Master.FindControl("masterPageLabel"); if(mpLabel != null) { Label1.Text = "Master page label = " + mpLabel.Text; } }
Consulte também
Conceitos
Visão Geral de Páginas Mestras ASP.NET
Trabalhando com Páginas Mestras do ASP.NET por Programação