Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to hide the content of an asp.net master page, if page is opened as a popup?

I have several aspx pages that can be opened either normally (full screen in browser), or called from another page as a popup (I am using Greybox, fwiw)

If the page is opened as a popup in Greybox, I would like to NOT display the master page content (which displays common top and left menus, etc).

As far as I know, there is no way of knowing server side if the page is a popup, this must be detected in client side javascript (in the case of Greybox, by checking window.parent.parent), and therefore the master page content must be hidden via javascript as well.

Any ideas on how to approach this?

like image 792
tbone Avatar asked Nov 18 '25 22:11

tbone


2 Answers

Create a simplified master page for the popup. Override the OnPreInit method (of the actual page) and switch out the masterpage based on a querystring argument:

protected override void OnPreInit(EventArgs e)
{
        base.OnPreInit(e);

        if(Request["PopUp"] == "Y")
        {
            MasterPageFile = "~/MyPopUp.master";
        }
}
like image 74
HectorMac Avatar answered Nov 21 '25 12:11

HectorMac


Well you could conditionally render the navigation controls etc. based on a querystring, pass the string in when it's a popup and if it exists don't render the controls. There are a few different ways to do it, but I think you should have the server not render the controls rather than client side hiding them.

P.S. Haven't heard of Greybox so I can't offer any specific insight there.

like image 37
Quintin Robinson Avatar answered Nov 21 '25 13:11

Quintin Robinson