C# – Accessing Master page control in ascx file

asp.netccontrols

I have a master page file that contains a 2 menu's in a 2 panel controls.
I also use a control to check if user is logged in and get the type of user.

Deppending on the type I want to show / hide the panel. The control itself is not referenced in the master page but dynamically through the CMS System.

I want to use findcontrol in the user control to find the panel control in the master page. I have tried different methods but all come back with null.

The content placeholder in the master page is
asp:Content runat="server" ContentPlaceHolderID="PHMainBlock"

and the control is called
asp:Panel ID="NormalUser" runat="server"

I have tried using the code….

Panel ph = (Panel)Page.Master.FindControl("NormalUser");
ph.Visible = false;

but brings back null, any help?

thanks..

Best Answer

You could create a public property in you Master Page i.e

public bool ShowPanel
{
    set
    {
        NormalUser.Visible = value;
    }
}

And call it like this

if (Page.Master is NameOfMasterPage)
{
    ((NameOfMasterPage)Page.Master).ShowPanel = false;
}
Related Topic