嗨我正在使用自定义表单字段验证器,似乎自定义验证器正在工作,不允许它继续到下一页,但它不更新验证摘要也不显示星号和标签,我已经变得可见了.我还在同一个字段上有其他验证器,如RequiredFieldValidator.设置了我的ValidationGroup,Text和IsValid也是如此.我甚至在javascript中编写并设置了一个虚拟客户端验证方法,正如一些解决方法所暗示的那样.
这是asp.net中的验证摘要代码
<asp:ValidationSummary ID="ValidatorSummary" runat="server" ValidationGroup="Step2" />
Run Code Online (Sandbox Code Playgroud)
这是自定义验证器和必填字段
<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>
Run Code Online (Sandbox Code Playgroud)
这是后面代码中的自定义验证方法
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;
}
Run Code Online (Sandbox Code Playgroud)
请指教,谢谢.
编辑:回答 - 按照bitxwise提到.验证摘要也应放在更新面板中.谢谢!
像这样:
<asp:UpdatePanel ID="UpdatePanelValidationSummaryHome" ChildrenAsTriggers="false" UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<asp:ValidationSummary ID="AddressHomeValidationSummary" …Run Code Online (Sandbox Code Playgroud)