2011-08-26 91 views
2

我搜索谷歌和SO,但沒有找到解決方案。在asp.net中動態加載CSS元素

我有一個asp.net的網絡應用程序,允許用戶自定義一些GUI方面(如字體顏色,添加自定義標誌等)。這些信息存儲在用戶配置文件數據庫中。

我有一個填充字體顏色等的css文件。主頁面從數據庫加載用戶配置文件,並相應地自定義頁面。

除了有其自己的每個標籤「字體顏色=」,我怎麼能顯示CSS元素的基礎上,從數據庫返回的用戶個人資料嗎? THX

+0

http://msdn.microsoft.com/en-us/library/ms366514.aspx –

回答

4

可以包含指向一個ASPX頁面一個額外的CSS文件:

<link rel="stylesheet" type="text/css" href="/CustomStyles.aspx" /> 

然後在CustomStyles.aspx改變默認的內容類型:

Response.Clear() 
Response.ContentType = "text/css" 

然後就開始輸出你的風格:

Response.Write("#awesome-button{color:" & ColorFromDatabase & ";}" 

確保該文件包含在其他樣式之後,所以t它優先考慮。您也可以在此處投入!IMPORTANT

Response.Write("#awesome-button{color:" & ColorFromDatabase & " !IMPORTANT;}" 
+2

+1哇,我覺得我們是一個熱死。我不認爲我見過「的回答是0秒」之前! http://yfrog.com/j2ojtp –

+3

您應該看到我在eBay上! –

+0

你知道枚舉或官方包裝本,避免硬編碼的或無效的顏色嗎?在ASP.NET MVC項目中,任何有意義的東西都可以使用。 – Shimmy

2

這取決於你如何有存儲的信息,但你可以將元素通過這樣的代碼添加樣式:

Button1.Style["font-weight"] = "bold"; 

或者你可以應用CSS類控制:

Button1.CssClass = "buttonStyle"; 
2

您可以根據存儲在數據庫中的首選項返回一個CSS文件。所以,你會:

<link rel="stylesheet" href="somepage.aspx?userid=<%=userID%>"> 

你可以甚至可能做到這一點很容易足以與傳統的ASP頁面,Web服務等

的一點是,該網頁會產生相同的基本樣式,盡顯用戶選擇的正確顏色等。這樣,在加載頁面後,您不必在服務器端或客戶端代碼中執行一堆樣式更改,或者將您的用戶首選項代碼與HTML混合,或者如果需要更改基本頁面改變樣式表的工作方式。這也使得在測試站點本身之外輕鬆測試樣式表。