2017-04-24 91 views
0

我有一個Web控件,我想在特定條件下修改CSS類。ASP.NET:以編程方式創建CSS類

理想情況下,我想編寫類似:

myMenu.StaticMenuItemStyle.CssClass =( 「.bgColor」, 「{背景:#FF0000}」);

不幸的是,這是第三方控件,它不公開任何Style或Attribute屬性。唯一暴露的屬性是CssClass。問題是十六進制顏色是從數據庫中檢索的,所以我不能預先在css文件中預先定義它。

編輯:我不知道用於背景的HEX值,直到我從數據庫中獲取HEX值的OnPreRender()。此時,我需要通過插入/更新背景的HEX值來創建/修改css類。

如何以編程方式創建和分配css類?

+0

我們不能用jQuery做呢? – aspxsushil

+0

沒有Javascript是的。 – Pavel

+1

您仍然可以使用CSS選擇器來選擇元素,即使它們沒有分配給它們的特定類。 – krillgar

回答

1

首先應用CSS類可以控制在頁頭克里特島樣式表如下

//// Create dynamic style rule which applies to the CSS class selector (".MyCssClass") 
Style dynamicClassStyle = new Style(); 
dynamicClassStyle.BorderStyle = BorderStyle.Solid; 
dynamicClassStyle.BorderColor = System.Drawing.Color.Black; 
dynamicClassStyle.BorderWidth = new Unit(1); 
dynamicClassStyle.BackColor = System.Drawing.Color.White; 
Page.Header.StyleSheet.CreateStyleRule(dynamicClassStyle, null, ".MyCssClass"); 

全部文章here

+0

謝謝。正是我在找什麼。 – Pavel

0

有幾種方式:

選項-1 保持所有預先定義的CSS類爲所有可能的背景顏色,選擇基於DB十六進制值之一。

選項-2: 創建一個空的CustomeStyle.css文件。在您的網站中添加此CSS文件參考。 從DB獲取十六進制代碼,並通過打開customstyle.css文件來編寫一個css類。