Привет! Я работаю над пользовательским валидатором поля формы, похоже, что пользовательский валидатор работает, не позволяя ему перейти к следующей странице, но он не обновляет сводку проверки и не отображает звездочку и ярлыки, которые я сделал видимыми. У меня также есть другие валидаторы, такие как RequiredFieldValidator в том же поле. Моя группа ValidationGroup установлена, как и текст и IsValid. Я даже написал и установил фиктивный метод проверки на стороне клиента в javascript, как предлагают некоторые обходные пути.
вот сводный код проверки в asp.net
<asp:ValidationSummary ID="ValidatorSummary" runat="server" ValidationGroup="Step2" />
здесь пользовательский валидатор и обязательное поле один
<asp:CustomValidator ID="AddressVerification" runat="server" ErrorMessage="Please enter a valid address." Display="Dynamic" ValidationGroup="Step2" OnServerValidate="AddressVerification_ServerValidate" ClientValidationFunction="CustomValidatorDummy" Text="*" Enabled="true" EnableClientScript="true"></asp:CustomValidator>
<asp:RequiredFieldValidator ID="RFValidatorHomeAddress" runat="server" ErrorMessage="Please enter home address." Text="*" Display="Dynamic" ValidationGroup="Step2" ControlToValidate="txtHomeAddress"></asp:RequiredFieldValidator>
вот пользовательский метод проверки в коде
protected void AddressVerification_ServerValidate(object sender, ServerValidateEventArgs e)
{
//lets just say it doesn't validate and sets the IsValid to false
lblUspsValidatorResHomeCity.Visible = true;
lblUspsValidatorResHomeState.Visible = true;
lblUspsValidatorResHomeZip.Visible = true;
e.IsValid = false;
}
пожалуйста, посоветуйте, спасибо.
EDIT:
Ответил - как упомянуто по битам. Сводка проверки также должна быть размещена внутри панели обновлений. Спасибо!
Вот так:
<asp:UpdatePanel ID="UpdatePanelValidationSummaryHome" ChildrenAsTriggers="false" UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<asp:ValidationSummary ID="AddressHomeValidationSummary" runat="server" ValidationGroup="AddressHomeValidationGroup"
CssClass="errors" />
</ContentTemplate>
, а затем вызвать обновление:
UpdatePanelValidationSummaryHome.Update();