Можно ли использовать элементы управления проверкой ASP.NET, когда мне нужно изменить HTML в случае сбоя проверки? - PullRequest
1 голос
/ 16 марта 2011

Допустим, у меня есть следующий HTML-код для текстового поля на странице ASP.NET:

<div class="myClass">
    <asp:TextBox ID="txtMyTextBox" runat="server"></asp:TextBox>
</div>

Достаточно просто добавить на эту страницу обязательный валидатор полей, например:

<asp:RequiredFieldValidator ID="valMyTextBox" runat="server" ControlToValidate="txtMyTextBox" ErrorMessage="My Text Box is required."></asp:RequiredFieldValidator>

Но мне нужно немного изменить HTML, если это текстовое поле не проходит проверку.Мне нужно добавить класс CSS в DIV.Поэтому, если пользователь оставляет это поле пустым, мне нужно, чтобы HTML выглядел так:

<div class="myClass error">
    <asp:TextBox ID="txtMyTextBox" runat="server"></asp:TextBox>
</div>

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

Кори

Ответы [ 3 ]

0 голосов
/ 16 марта 2011

На самом деле я нашел ответ в другом вопросе StackOverflow.Вы можете увидеть это здесь: Как добавить дополнительный класс CSS в окружающий DIV для неудачной проверки формы? .

0 голосов
/ 25 марта 2012

Другой способ сделать это без Postback - переопределить стандартные сценарии проверки asp.net.Я разместил пример здесь: https://stackoverflow.com/a/9857696/618044

0 голосов
/ 16 марта 2011

Хорошо, я думаю, что это может помочь, хотя я не уверен в точных способах сделать это

<div class=<%Response.Write(validateTextBox())%>>

та функция, которая будет на сервере, которую вы вызываете для изменения имени класса в зависимости от текстового поля

...