Стиль по умолчанию для валидатора ASP.Net

Я использую несколько вариантов элементов управления Validator (RequiredFieldValidator, CompareValidator и т.д.), и я использую свойство CssClass для проверки. Я вижу (через Firebug), что класс применяется, но сам элемент validator добавляет к нему элемент стиля, а именно color: red. Но я не хочу этого. Я хочу, чтобы элемент управления использовал только cssclass.

Я знаю, что могу переопределить атрибут Forecolor, но мне нужно будет сделать это на каждом валидаторе в проекте. И я действительно хотел бы иметь возможность просто изменить свой CSS-класс в моей таблице стилей, если мы в будущем должны изменить все сообщения об ошибках.

У кого-нибудь есть подсказки, как сообщить элементам Validator, чтобы НЕ использовать их стили по умолчанию?

Ответы

Ответ 1

Вы можете сделать это в своем файле css:

.validator
{
    color: blue !important;
}

Это приведет к переопределению встроенного красного стиля.

Ответ 2

Вы можете изменить стиль валидаторов по умолчанию с помощью Темы.

  • Щелкните правой кнопкой мыши на веб-сайте в Visual Studio
  • Выберите "Добавить папку ASP.NET"
  • Выберите "Темы", назовите новую папку "DefaultTheme"
  • Создайте файл под названием "Controls.skin" в папке DefaultTheme

Добавьте в файл 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>

Затем вы можете установить любой цвет, который вы хотите для .validation-error в ваших файлах CSS.

(Обратите внимание, что версии ASP.Net до 4.0 использовали по умолчанию для всех валидаторов для всех style="Color:red", что затрудняет переопределение их цветов в CSS. Если вы обнаружите, что это влияет на вас, вы можете переопределить его, установив свойство ForeColor для каждого из элементов темы выше или добавить !important в правило CSS.)

См:

Ответ 3

Если вы используете темы, вы можете настроить свой файл скина, чтобы контролировать внешний вид своего валидатора. Проблема с встроенной версией Forecolor заключается в том, что путь .Net отображает элементы управления по умолчанию, он вставляет атрибут color = "#...", который переопределяет CSS на уровне элемента. Если решение Keltex выше не получает его для вас с важной директивой, следующим шагом, вероятно, является использование/адаптация/помощь в проекте CSS-Friendly Control Adapters в http://www.asp.net/CSSAdapters/.

Бесстыдный плагин: Брайан ДеМарзо работает над расширением этого проекта в Google Code.

Ответ 4

Вы просматривали темы?

Ответ 5

Set Forecolor=""

И

CssClass="your-css-class"