2017-04-24 94 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类。