2008-11-18 54 views
2

我有幾個aspx頁面,可以正常打開(全屏在瀏覽器中),或從另一個頁面作爲彈出窗口調用(我正在使用Greybox,fwiw)如果頁面以彈出窗口打開,是否可以隱藏asp.net母版頁的內容?

如果頁面以Greybox ,我想不顯示主頁面內容(顯示常見的頂部和左側菜單等)。

據我所知,沒有辦法知道服務器端,如果頁面是一個彈出窗口,這必須在客戶端JavaScript中檢測到(在Greybox的情況下,通過檢查window.parent.parent),以及因此主頁面內容也必須通過javascript隱藏。

關於如何解決這個問題的任何想法?

回答

9

爲彈出窗口創建一個簡化的母版頁。重寫OnPreInit方法(實際頁面),並根據查詢字符串參數切換出主頁面:

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

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

那麼你可以有條件地呈現基於查詢字符串的導航控件等,當它是一個彈出窗口時傳遞字符串,如果它存在不呈現控件。有幾種不同的方式來做到這一點,但我認爲你應該讓服務器不提供控件而不是客戶端隱藏它們。

P.S.沒有聽說過Greybox,所以我無法提供任何具體的見解。

0

我同意。這是一個服務器端的問題,而不是在客戶端上形成的東西。將彈出窗口和主頁面之間的通用內容單獨維護並將服務器端導入具有主頁面環境的頁面,組織網頁可能也很有價值。鏈接彈出窗口的頁面應該使用評論內容,而不是周邊的內容。

很多方法可以做到這一點(但我不認爲任何人想知道FrontPage擴展如何提供幫助)。嘗試服務器端包含。

相關問題