Search code examples
asp.netmaster-pageswebformscontent-pages

Get ID of Master Page object in Content Page


If the master page has a label with the id label1 how do I control that id in the content page. The id is not passed down so i can't control it inherently. For example if i have a control with the id contentLabel i can access it code by just typing contentLabel.(whatever i'm doing)


Solution

  • Here are two options:

    1: make sure your content aspx specifies MasterType:    

    <%@ MasterType VirtualPath="~/yourMasterPageName.master" %>
    

    Doing this lets your content page know what to expect from your master-page and gives you intellisense. So, now you can go ahead and expose the label's Text property on the master page's code-behind.

    public string ContentLabelText
    {
        get { return contentLabel.Text; }
        set { contentLabel.Text = value; }
    }
    

    Then you can access it in your content page's code-behind page ala:

    Master.ContentLabelText = "hah!";
    

    or, 2: You can access the label via FindControl() like so:

    var contentLabel = Master.FindControl("contentLabel") as Label;