我有几个aspx页面可以正常打开(浏览器全屏),或者从另一个页面调用弹出窗口(我使用的是Greybox,fwiw)
如果页面在Greybox中作为弹出窗口打开,我想不显示母版页面内容(显示常见的顶部和左侧菜单等)。
据我所知,如果页面是弹出窗口,就无法知道服务器端,这必须在客户端javascript中检测到(在Greybox的情况下,通过检查window.parent.parent),因此主页面内容也必须通过javascript隐藏。
有关如何处理此事的任何想法?
答案 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扩展如何帮助)。尝试服务器端包含。