Как заставить RequiredFieldValidator исчезнуть, а затем появиться? - PullRequest
0 голосов
/ 16 июля 2011

Я хочу, чтобы обязательный валидатор поля становился видимым только при возникновении ошибки ... не постоянно .. Как я могу это сделать?

<asp:RequiredFieldValidator
    runat="server"
    ControlToValidate="Editor1"
    ErrorMessage="fffffff"
    ForeColor="#CC0000"
    Display="Dynamic" />

Сообщение об ошибке появляется при запускестраница .. Я хочу, чтобы она появлялась всякий раз, когда возникает ошибка .. Когда поле пусто !!

Ответы [ 3 ]

1 голос
/ 16 июля 2011

Единственная причина вашей проблемы на текущей странице в том, что в событии загрузки страницы где-то вызывается Page.Validate(), и вам нужно проверить это.

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

Можете ли вы попробовать это на отдельной новой странице?

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server"
ControlToValidate="TextBox1"
ErrorMessage="fffffff"
ForeColor="#CC0000"
Display="Dynamic" />
    <asp:Button ID="Button1" runat="server" Text="Button" />

Если вы проверите вышеупомянутый пример, он не будет запускать Validator при загрузке страницы, но вы можете добавить этот код, и вы обнаружите, что валидатор запускается при загрузке страницы.

protected void Page_Load(object sender, EventArgs e)
{
    Page.Validate();
}

Обратите внимание, я протестировал оба сценария на новой странице, просто попробуйте, и вы поймете проблему.

0 голосов
/ 16 июля 2011

Установите для свойства отображения требуемого валидатора поля значение Динамический

0 голосов
/ 16 июля 2011

Если подумать, при загрузке страницы поле пустое ... и поэтому ошибка. Присвойте требуемому fieldvalidator свойство InitialValue="", и это должно дать вам то, что вы хотите.

...