сбор ошибок в веб-формах asp.net - PullRequest
0 голосов
/ 23 сентября 2011

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

protected override void OnLoad(EventArgs e)
{
    //code here
    base.OnLoad(e);
}

Как получить доступ к коллекции ошибок на базовой странице примерно так ...

for each(var error in Page.Errors)
{
    TextBox textBox = error.textboxInError;
    textBox.Background - Color = "Red";
}

Если быть более точнымхотите вызвать на странице ошибки проверки.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

Если вы используете валидаторы веб-форм, вы можете сделать что-то вроде этого:

// Get a collection of all validators to check, sort of like this
var allValidators = new[] { validator1, validator2, validator3 };

foreach (var validator in allValidators)
{
    validator.Validate();
    var ctrl = (WebControl)Page.FindControl(validator.ControlToValidate);
    ctrl.BackColor = validator.IsValid ? Colors.Red : Colors.White;
}

Обновление

Очевидно, у объекта Page есть коллекция валидаторов. См. Page.Validators . Вот некоторый пересмотренный код, использующий это:

foreach (var validator in Page.Validators)
{
    validator.Validate();
    var ctrl = (WebControl)Page.FindControl(validator.ControlToValidate);
    ctrl.BackColor = validator.IsValid ? Colors.Red : Colors.White;
}
0 голосов
/ 23 сентября 2011

Проверить этот урок Out . Это поможет вам создать пользовательскую страницу ошибок и перехватить ошибку на уровне приложения, страницы или Web.Config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...