how to access master page control from content page
asp.net, code-behind, master-pages
Solution
In the MasterPage.cs file add the `property` of `Label` like this:
public string ErrorMessage
{
get
{
return lblMessage.Text;
}
set
{
lblMessage.Text = value;
}
}
On your `aspx` page, just below the Page Directive add this:
<%@ Page Title="" Language="C#" MasterPageFile="Master Path Name"..... %>
<%@ MasterType VirtualPath="Master Path Name" %> // Add this
And in your `codebehind(aspx.cs)` page you can then easily access the `Label Property` and set its `text` as required. Like this:
this.Master.ErrorMessage = "Your Error Message here";
Problem
I have a master page which contains a label for status messages. I need to set the status text from different .aspx pages. How can this be done from the content page? ``` public partial class Site : System.Web.UI.MasterPage { public string StatusNachricht { get { return lblStatus.Text; } set { lblStatus.Text = value; } } protected void Page_Load(object sender, EventArgs e) { } } ``` I have tried this, but was unsuccessful in making it work: ``` public partial class DatenAendern : System.Web.UI.Page { var master = Master as Site; protected void Page_Load(object sender, EventArgs e) { if (master != null) { master.setStatusLabel(""); } } protected void grdBenutzer_RowCommand(object sender, GridViewCommandEventArgs e) { try { //some code if (master != null) { master.setStatusLabel("Passwort erfolgreich geändert."); } } catch (Exception ex) { if (master != null) { master.setStatusLabel("Passwort konnte nicht geändert werden!"); } } } } } ```