Cómo hacer referencia a los controles de una MasterPage en ASP.NET

En este artículo veremos cómo hacer referencia a las propiedades de los controles de una página maestra desde nuestra página web.
Utilizaremos el método FindControl, para buscar y hacer referencia al control de la Página Maestra.
En el ejemplo siguiente se muestra el uso del método FindControl para obtener una referencia a dos controles de la página maestra, un control TextBox y un control Label. Dado que el control TextBox está dentro de un control ContentPlaceHolder, debe obtener primero una referencia a ContentPlaceHolder y, a continuación, utilizar su método FindControl para buscar el control TextBox.
VB
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
C#
// 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; }