ASP.Net验证器默认样式

时间:2008-10-29 16:11:47

标签: asp.net validation

我正在使用Validator控件的几个变体(RequiredFieldValidator,CompareValidator等)并使用验证器的CssClass属性。我可以看到(通过Firebug)该类正在应用,但验证器控件本身正在为其添加一个样式元素,即color:red。但我不希望这样。我希望控件只使用cssclass。

我知道我可以覆盖Forecolor属性,但我必须在项目中的每个验证器上执行此操作。而且我真的希望能够在我的样式表中更改我的CSS类,以防我们将来必须更改所有错误消息的外观。

任何人都有任何线索如何告诉Validator控件不使用他们的默认样式?

5 个答案:

答案 0 :(得分:13)

您可以在css文件中执行此操作:

.validator
{
    color: blue !important;
}

这将覆盖内联红色样式。

答案 1 :(得分:9)

您可以使用主题更改验证器的默认样式。

  • 右键单击Visual Studio中的网站
  • 选择“添加ASP.NET文件夹”
  • 选择“主题”,将新文件夹命名为“DefaultTheme”
  • 在DefaultTheme文件夹中创建名为“Controls.skin”的文件

将以下内容添加到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"