ASP.Net验证器默认样式

Mat*_*wdy 13 asp.net validation

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

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

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

Kel*_*tex 13

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

.validator
{
    color: blue !important;
}
Run Code Online (Sandbox Code Playgroud)

这将覆盖内联红色样式.

  • 仅供参考.从ASP.NET 4.0开始:*默认情况下,从它派生的BaseValidator类和验证控件不再呈现红色文本.*(如果controlRenderingCompatibilityVersion未设置为"3.5") (12认同)
  • 这是ASP.NET吸吮的一个很好的例子.使用`!important`只是因为ASP.NET将`style ="color:Red""推到你身上. (4认同)

Ric*_*ich 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" />
Run Code Online (Sandbox Code Playgroud)

将以下内容合并到您的web.config:

<configuration>
    <system.web>
        <pages theme="DefaultTheme" />
    </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后,您可以.validation-error在CSS文件中设置所需的颜色.

(请注意,style="Color:red"默认情况下,4.0之前的ASP.Net版本用于应用于所有验证器,这使得很难在CSS中覆盖它们的颜色.如果发现这对您有影响,那么您可以通过ForeColor在每个验证器上设置属性来覆盖它.上面的主题元素,或添加!important到您的CSS规则.)

看到: