我正在使用Validator控件的几个变体(RequiredFieldValidator,CompareValidator等)并使用验证器的CssClass属性。我可以看到(通过Firebug)该类正在应用,但验证器控件本身正在为其添加一个样式元素,即color:red。但我不希望这样。我希望控件只使用cssclass。
我知道我可以覆盖Forecolor属性,但我必须在项目中的每个验证器上执行此操作。而且我真的希望能够在我的样式表中更改我的CSS类,以防我们将来必须更改所有错误消息的外观。
任何人都有任何线索如何告诉Validator控件不使用他们的默认样式?
答案 0 :(得分:13)
您可以在css文件中执行此操作:
.validator
{
color: blue !important;
}
这将覆盖内联红色样式。
答案 1 :(得分:9)
您可以使用主题更改验证器的默认样式。
将以下内容添加到Controls.skin文件中:
<asp:RequiredFieldValidator runat="server" CssClass="validation-error" />
<asp:RangeValidator runat="server" CssClass="validation-error" />
<asp:CompareValidator runat="server" CssClass="validation-error" />
<asp:RegularExpressionValidator runat="server" CssClass="validation-error" />
<asp:CustomValidator runat="server" CssClass="validation-error" />
<asp:ValidationSummary runat="server" CssClass="validation-error" />
将以下内容合并到web.config
:
<configuration>
<system.web>
<pages theme="DefaultTheme" />
</system.web>
</configuration>
然后,您可以在CSS文件中为.validation-error
设置所需的颜色。
(请注意,4.0之前的ASP.Net版本默认情况下会将style="Color:red"
应用于所有验证器,这使得很难在CSS中覆盖它们的颜色。如果您发现它影响了您,那么您可以覆盖它通过在上面的每个主题元素上设置ForeColor
属性,或将!important
添加到CSS规则中。)
请参阅:
答案 2 :(得分:3)
如果使用主题,则可以设置外观文件以控制验证器的外观。 Forecolor内联的问题在于.Net呈现默认控件的方式,它会插入一个color =“#...”属性,该属性会在元素级别覆盖CSS。如果上面的Keltex解决方案没有为您提供!important指令,那么下一步可能是使用/ adapt / help在http://www.asp.net/CSSAdapters/上的CSS友好控制适配器项目。
无耻插件:Brian DeMarzo正致力于在Google Code上扩展此项目。
答案 3 :(得分:1)
你看过主题了吗?
答案 4 :(得分:0)
Set Forecolor=""
并且
CssClass="your-css-class"