如何使ASP.Net验证器依赖于另一个验证器

时间:2011-08-11 20:12:05

标签: asp.net validation

在我的ASP.Net应用程序中,我有一个文本框,它被装饰为带有jQueryUI的Datepicker。我在文本框中有两个ASP.Net比较验证器。一个是进行DataType检查的比较验证器。第二个是比较验证器,确保输入的日期大于指定的日期。

我的问题是,如果用户手输入2/31/11的日期,则会显示两条错误消息,一条用于有效日期比较,另一条用于大于比较。因为输入的日期不是有效日期,所以我希望显示该错误消息。但是,我不希望显示第二条错误消息。

我的问题是,当用户输入无效日期时,第二个比较验证器正确地确定数据无效,但我不希望它显示任何内容,因为第一个验证器已覆盖它。有没有办法只使用第二个比较验证器是第一个比较验证器通过?我可以使第二个比较验证器依赖于第一个吗?

1 个答案:

答案 0 :(得分:2)

此问题相关,可能会对您有所帮助:Extending ASP.NET validators

但我建议只使用CustomValidator来验证this answer中的两种情况。

或使用ValidatorCalloutExtender。该控件仅使第一个ValidatorCalloutExtender可见。

<asp:TextBox ID="TxtDate" runat="server" CausesValidation="true" ValidationGroup="VG_SAVE"></asp:TextBox>
<asp:CompareValidator ID="DateFormat" runat="server" ControlToValidate="TxtDate" Display="None" EnableClientScript="true" ErrorMessage="Enter valid Date" Operator="DataTypeCheck" style="visibility:hidden" Type="Date" ValidationGroup="VG_SAVE">*</asp:CompareValidator> 
<asp:ValidatorCalloutExtender ID="DateFormatExtender" runat="server" CloseImageUrl="~/images/close.gif" HighlightCssClass="highlight" TargetControlID="DateFormat"  WarningIconImageUrl="~/images/warning.gif" Width="150px" />