您好我正在处理自定义窗体字段验证程序,它似乎是自定义验证程序正在通过不允许它继续到下一页,但它不会更新验证摘要也不显示星号和我制作的可见标签。我还有其他验证器,如RequiredFieldValidator在同一个字段上。我的ValidationGroup被设置,就像Text和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;
}
请指教,谢谢。编号: 回答 - 如bitxwise提到的。验证摘要也应放置在更新面板中。谢谢!
像这样:
<asp:UpdatePanel ID="UpdatePanelValidationSummaryHome" ChildrenAsTriggers="false" UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<asp:ValidationSummary ID="AddressHomeValidationSummary" runat="server" ValidationGroup="AddressHomeValidationGroup"
CssClass="errors" />
</ContentTemplate>
,然后调用更新:
UpdatePanelValidationSummaryHome.Update();
很可能您在按钮标记中缺少ValidationSummary。 (你没有发布的代码)。 – genericuser 2010-11-29 22:26:52
和CausesValidation对于按钮默认为true。 – genericuser 2010-11-29 22:32:15