我想能夠在網關頁面中設置ASP.NET主題,它將根據合作伙伴ID或類似的內容確定主題。我想我只是在會話中粘貼主題名稱,如果需要,可以從此處獲取。如何在「網關」頁面中設置ASP.NET網站的主題?
我很難找到合適的地方把這段代碼放在一個地方。
我似乎無法看到一個全球的地方,你可以設置主題。您必須爲每個頁面設置它。
如MSDN中所述,您可以在頁面的PreInit函數中分配Theme屬性。
Protected void Page_PreInit(object sender, EventArgs e)
{
switch (Request.QueryString["theme"])
{
case "Blue":
Page.Theme = "BlueTheme";
break;
case "Pink":
Page.Theme = "PinkTheme";
break;
}
}
所以我認爲好 - 我只是在我的母版頁中做到這一點。不幸的是,將完全相同的代碼複製到母版頁中不起作用。所以我想 - 嗯,也許母版頁不使用這個事件。事實證明這是事實。
我真的不想把這個主題代碼放在每個內容頁面上。這似乎完全愚蠢。但我還無法找到其他方法。 MSDN僅描述了兩種將主題應用於頁面的方式 - 在web.config中或使用Page.Theme。
我將不得不創建一個頁面的子類,並讓我的所有頁面子類化該頁面,並覆蓋該子類中的PreInit?我想我一定會錯過一些東西,因爲我無法想象MS真的希望人們在每個內容頁面上以編程方式設置主題。
我的主題也被用來驅動其他邏輯,例如哪些按鈕出現在菜單欄和頁面上的一些其他的dyanmic控件 – 2009-01-20 08:46:49