2008-10-29 3 views
13

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

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

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

ответ

13

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

.validator 
{ 
    color: blue !important; 
} 

Это будет переопределить встроенный красный стиль.

+1

Отлично. Это работало в IE6 и FF3. Я не могу проверить остальных прямо, но это проведет меня для тестирования. Я никогда не думал о том, чтобы сделать что-то важное. Для любого, кто интересуется, класс .validator, на который он ссылается выше, может быть любым - мой называется .error_text – 2008-10-29 18:55:02

1

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

+0

Nope. Вы знаете, что это сработает, или вы думаете, что это может быть хорошим местом для начала? – 2008-10-29 16:17:15

+0

Я думаю, что это может быть одно место для начала. Но ответ от Keltex выглядит проще. – 2008-10-29 16:42:58

+0

Спасибо Кен. Решение Keltex работает (по крайней мере, на FF3 и IE6 в WinXP). – 2008-10-29 18:56:05

3

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

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

9

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

  • правой кнопкой мыши на веб-сайте в Visual Studio
  • Выберите "Добавить папку ASP.NET"
  • Выберите "Темы", назовите новую папку "DefaultTheme"
  • Создайте файл под названием «Controls. кожа»в папке 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" /> 

Merge следующего в ваш web.config:

<configuration> 
    <system.web> 
     <pages theme="DefaultTheme" /> 
    </system.web> 
</configuration> 

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

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

См:

0
Set Forecolor="" 

И

CssClass="your-css-class"