RequiredFieldValidator - 如何去除默认的红色字体颜色

21

我似乎无法更改必填字段验证器的默认颜色。在源代码中它是:

<span class="required">*</span>
<asp:RequiredFieldValidator ID="valReq_txtTracks" runat="server"
    ControlToValidate="txtTracks"
    Display="Dynamic" />

这是我的.skin文件中的内容:

<asp:RequiredFieldValidator runat="server" 
    CssClass="error-text"
    ErrorMessage="required" />

在呈现的源代码中我看到:

<span class="required">*</span>
<span id="ctl00_ctl00_cphContent_cphContent_valReq_txtTracks" class="error-text" style="color:Red;display:none;">required</span>

注意 "style=color:Red;" 这个内联 CSS 样式需要删除。由于它是内联样式,我无法使用 CSS 类覆盖它。那么该怎么办呢?

5个回答

32

有一个RequiredFieldValidator.ForeColor属性,可以用来控制颜色。请注意,如果要在CSS中设置颜色,则需要将ForeColor=""设置为清除控件上的颜色。


1
我在.skin文件中添加了ForeColor = "",这就解决了问题,谢谢! - craigmoliver

5

我知道这是一个旧的线程,但是我最近遇到了这个问题。设置样式表不能覆盖验证器文本颜色有点奇怪。在我的情况下,我有很多不同的验证器和扩展验证器,我想覆盖文本颜色,所以我没有使用主题和皮肤文件,而是创建了自定义控件适配器来处理BaseValidator控件的呈现。在呈现方法内部,我只需设置ForeColor = Color.Empty。希望这可以帮助其他遇到此类情况并希望覆盖所有类型验证器(必填字段、正则表达式、比较等)文本颜色的人。


1
谢谢你在这个问题上的额外回答。我知道我需要清除ForeColor,但是接受的答案将其设置为""没有考虑到ForeColor现在是System.Drawing.Color类型。 - Bernard Chen
它实际上一直是 System.Drawing.Color,但如果您正在 ASPX 页面上设置它,则可以使用空字符串。在代码后台中,Color.Empty 是正确的方式。 - Mark Brackett

2

您是否尝试在主题文件中添加空字符串的样式属性:

<asp:RequiredFieldValidator runat="server" 
    CssClass="error-text"
    style=""
    ErrorMessage="required" />

mohammedn,"style"属性在RequiredFieldValidator中不存在! - ShaileshDev

1

我在某个地方读到过,可以在你的CSS类中使用! important标签来覆盖内联CSS...


那个也可以,但我想让asp.net引擎移除颜色样式,而不是css继承。谢谢! - craigmoliver

-2

在Firefox和IE中使用!important似乎很好用,但出于某种原因,在Google Chrome中不起作用...不过没关系,Chrome的市场份额仍然非常低。

.form_error
{
    font: bold 15px arial black,arial,verdana,helvetica !important; 
    color: #ff0000 !important;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接