2011-02-23 93 views
0

我正在用ASP.NET編寫的Web前端編寫一個SaaS應用程序。我不是一個設計師,我的ASP.NET知識還沒有達到專家水平 - 我通常專注於服務器端的東西 - 但我有一個基本的母版頁和樣式表,它們可以做到這一點。如何將自定義皮膚應用於ASP.NET網站?

現在我想給我的客戶提供自定義他們自己的網站樣式,顏色,背景圖片等的能力,以便他們的客戶登錄到他們的門戶mycustomer.mydomain.com,並看到「mycustomer」選擇。

有沒有最微弱的線索如何做到這一點。怎麼樣?

回答

1

如果您允許客戶指定他自己的CSS(無論是作爲文件還是在頁面中的某個文本框中)。您可以將其簡單地保存爲.css文件在虛擬目錄中,並在Page_LoadPage_Init事件中將其添加到您的頁面。你需要一個Link標籤推到頁眉頁

像這樣:

// Define an HtmlLink control. 
HtmlLink myHtmlLink = new HtmlLink(); 
myHtmlLink.Href = "~/CustomersCustomStyleSheet.css"; 
myHtmlLink.Attributes.Add("rel", "stylesheet"); 
myHtmlLink.Attributes.Add("type", "text/css"); 

// Add the HtmlLink to the Head section of the page. 
Page.Header.Controls.Add(myHtmlLink); 
+0

+1哇,這容易嗎?好的,那麼在母版頁中聲明的默認樣式表有什麼作用?如果發生衝突,頁面如何知道使用自定義樣式表而不是默認值?如果你說你只能有一個樣式表 - 這是否意味着客戶必須爲我在默認樣式表中定義的每個屬性提供樣式表值? – 2011-02-23 17:17:38

+0

好吧,作爲一種默認行爲,它會級聯CSS並應用它..所以這是你必須處理的事情。你可以做很多事情來檢查用戶是否有自定義的..如果他沒有加載你的平常的CSS保持不同的CSS的情況下,不定義樣式定製的樣式,然後加載用戶的CSS。你也可以試用'!important' – 2011-02-23 17:24:04

+0

謝謝你的幫助! – 2011-02-23 17:30:58