如果页面作为弹出窗口打开,是否可以隐藏asp.net母版页的内容?

时间:2008-11-18 17:11:34

标签: asp.net javascript

我有几个aspx页面可以正常打开(浏览器全屏),或者从另一个页面调用弹出窗口(我使用的是Greybox,fwiw)

如果页面在Greybox中作为弹出窗口打开,我想不显示母版页面内容(显示常见的顶部和左侧菜单等)。

据我所知,如果页面是弹出窗口,就无法知道服务器端,这必须在客户端javascript中检测到(在Greybox的情况下,通过检查window.parent.parent),因此主页面内容也必须通过javascript隐藏。

有关如何处理此事的任何想法?

3 个答案:

答案 0 :(得分:9)

为弹出窗口创建简化的母版页。覆盖(实际页面的)OnPreInit方法并根据查询字符串参数切换出母版页:

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

        if(Request["PopUp"] == "Y")
        {
            MasterPageFile = "~/MyPopUp.master";
        }
}

答案 1 :(得分:1)

您可以根据查询字符串有条件地渲染导航控件等,在弹出窗口时传入字符串,如果存在则不渲染控件。有几种不同的方法可以做到这一点,但我认为你应该让服务器不呈现控件而不是客户端隐藏它们。

P.S。没有听说过Greybox,所以我不能在那里提供任何具体的见解。

答案 2 :(得分:0)

我同意。这是一个服务器端问题,而不是在客户端形成的问题。组织您的网页可能也很有价值,其中弹出窗口和主页面之间的公共内容是单独维护的,并且服务器端导入到具有母版页面环绕的页面中。链接弹出窗口的页面应使用评论内容,而不是surrounder。

有很多方法可以做到这一点(但我不认为有人想知道FrontPage扩展如何帮助)。尝试服务器端包含。