Я хочу, чтобы все валидаторы на веб-сайте ASP.Net 3.5 имели значение CssClass "error". Моей первоначальной мыслью было сделать это в скине темы так:
<asp:CompareValidator runat="server"
CssClass="error" />
<asp:CustomValidator runat="server"
CssClass="error" />
<asp:RequiredFieldValidator runat="server"
CssClass="error" />
<belCommon:ZipCodeValidator runat="server"
CssClass="error" />
<belCommon:PhoneNumberValidator runat="server"
CssClass="error" />
Это только частичный список валидаторов, которые я использую. В идеале я хотел бы сделать что-то вроде этого:
<asp:BaseValidator runat="server"
CssClass="error" />
И поскольку все валидаторы наследуются от BaseValidator, я ожидаю, что это будет работать, но это не так. Есть ли способ сделать это без явного добавления каждого отдельного элемента управления валидатора в скин?
Обновление:
Я нашел другой подход, используя javascript:
Sys.Application.add_init(function(sender, args)
{
if (Page_Validators != null)
{
for (i = 0; i < Page_Validators.length; i++)
{
Page_Validators[i].className = "error";
}
}
});
ASP.Net генерирует переменную javascript под названием Page_Validators, которая представляет собой массив диапазонов проверки. Этот скрипт проверяет, существует ли он, а затем перебирает и задает имя класса. Я добавил это на главную страницу, и пока оно работает.