2009-01-19 53 views
0

我希望我的神祕標題不是太神祕,但我會試着解釋我實際上想做什麼。使用ASP.NET實現「反向」或「嵌套」主頁面

我有一個母版頁'A'有子頁'B'和'C'。 這是用ASP.NET中的標準主頁面模型實現的。

我的網站有兩個主題「T1」和「T2」。 他們實際上代表不同的合作伙伴,T1是我們自己的公司,T2是合作伙伴。

我想在頁面'B'和'C'上顯示具體的東西,這取決於我使用的是哪個主題。例如,我可能希望在頁面'B'中插入特定於主題'T2'的合作伙伴的其他按鈕或圖形。此內容將位於頁面上的任意位置,具體取決於頁面本身。有些合作伙伴甚至可能不使用此功能。

問題是我想盡可能以聲明方式做到這一點,並儘量減少頁面對主題的瞭解。

這就是「反向」母版頁概念的用武之地。我想要一個孩子頁面可以向其中插入「主題」的具體內容上定義一個區域。(我在說'主題',因爲那是ASP.NET使用的 - 而且很可能是我將內容綁定到的東西)。

所以,你可能會想:

  • 爲什麼你不能只用一個母版頁,這和添加額外的內容部分?原因是內容可能出現在特定於該頁面的位置的頁面上的任何位置。
  • 爲什麼你不能使用「嵌套」母版頁?基本上同樣的原因。

可能的解決辦法:

我想了解一下建立某種用戶控制的,將有代表什麼類型的內容將在那裏插入一個文本的關鍵。用戶控件必須知道每個「主題」要顯示的內容 - 可能是通過動態創建相關的附加用戶控件。

這似乎有點笨拙 - 所以我想知道其他人可能爲類似情況創建了什麼樣的解決方案。

回答

0

您是否有針對不同合作伙伴的修復佈局?還是您希望合作伙伴在運行時選擇佈局?

如果佈局是固定的而不是1種方式是創建禪式CSS(http://www.csszengarden.com/)並根據客戶/合作伙伴動態加載它。如果您希望合作伙伴在運行時修改佈局,那麼可能需要使用Webparts。

希望這會有所幫助。

+1

的WebParts將真正複雜的項目/請儘量避免它們。你不想最終看起來像Sharepoint *不寒而慄* – 2009-01-19 05:32:49

1

您可以使用CSS來定位您網頁上任何位置的內容部分。所以我不會擔心頁面位置等

如果是我,我只是動態加載2個不同的CSS文件到一個母版頁和基於相同的邏輯呈現不同的內容到佔位符。

1

我目前正在研究一個網站,它對CSS有太多的要求。在一種佈局中,登錄是朝向渲染訂單的頂部水平的,而在另一個佈局的右側列中。

我們使用標準的ASP.NET主題,推出CSS,通過SkinID標誌網址等

爲了得到我已經創建了一個通過指定列表加載一個用戶控件「加載程序」控制的自定義佈局在一個Loader屬性中。該屬性可以直接在加載器標記中定義,也可以通過主題中的.skin文件定義。

列表中的每個鍵只是UserControl的基本名稱(我添加了路徑和擴展名)。這些控件是通過Page.LoadControl()創建的。