Este caso se podría decir que es lo contrario de Acceder a las propiedades y controles de una MasterPage. Ahora queremos acceder a las propiedades y controles que tengamos declarados en nuestra página de contenido o Content Page (también content), desde la master que la contiene.
Acceso a los controles
En el código de la master, utilizando el método FindControl() del control de servidor ContentPlaceHolder encontraremos los controles a los que queremos tener acceso. No olvidemos que el control ContentPlaceHolder es el contenedor que contiene nuestra página de contenido.
Label2.Text = ((TextBox)ContentPlaceHolder1.FindControl("TextBox1")).Text;
Acceso a las propiedades
Para acceder a las propiedades de la página de contendido deberemos "kurrarnoslo" un poco más. En primer lugar declararemos una interfaz que implemente las firmas de las propiedades a las que queremos tener acceso. Por ejemplo:
public interface miInterfaz
{
string miPropiedad { get; set; }
}
Esta interfaz deberá ser implementada por nuestra Content Page y por consiguiente también las propiedades que contenga la interfaz. Hecho esto, podremos acceder desde la Master Page a la propiedades implementadas en la content con un código como este:
var miContent = (miInterfaz)this.Page;
if (miContent != null)
Label1.Text = miContent.miPropiedad;
Nota: Parte de este artículo ha sido escrito gracias a unos buenos compañeros de los foros.
Relacionado con este artículo:
Acceder a las propiedades y controles de una MasterPage (I)
Acceder a las propiedades y controles de una MasterPage (II)