теперь, сообщение об ошибке отобразится, если я перемещусь из текущего текстового поля. Я не хочу отображать его, пока я не нажимаю кнопку отправки.
Это невозможно, если для ваших валидаторов включен ClientScript. И ClientScript по умолчанию включен для ваших валидаторов. Вам необходимо отключить это, установив для EnableClientScript значение False в вашем источнике.
Теперь в обработчике событий вашей кнопки отправки вызовите Page.Validate () и Page.IsValid, чтобы проверить, все ли валидаторы прошли проверку.
Пример:
<asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName" EnableClientScript="false" Display="Dynamic" SetFocusOnError="true" />
Page.Validate();
if (!Page.IsValid)
{
//show a message or throw an exception
}
Используйте элемент управления сводкой проверки где-нибудь на вашей странице ...
< asp: validationsummary id = "valSummary" runat = "server" headertext = "Ошибки проверки:" cssclass = "ValidationSummary" />
Затем для проверки:
<asp:textbox id="txtPostalCode" runat="server" MaxLength="250" Width="160px" text='<%# Bind("PostalCode") %>'></asp:textbox>
<asp:requiredfieldvalidator id="reqPostalCode" runat="server" errormessage="Postal code is required." controltovalidate="txtPostalCode">*</asp:requiredfieldvalidator>
Удалите "*", если вы не хотите немедленно обратная связь ... сообщение об ошибке отображается в элементе управления
при отправке формы.
Обычно он появляется только тогда, когда вы вводите текст, снова удаляете его, а затем выходите из текстового поля. Я думаю, это сделано намеренно. Попробуйте изменить свойство EnableClientScript.