2011-08-11 107 views
2

在我的ASP.Net應用程序,我有一個裝飾,與jQueryUI的一個datepicker一個文本框。我有兩個ASP.Net比較文本框中的驗證器。一個是進行DataType檢查的比較驗證程序。第二個是確保輸入日期大於指定日期的比較驗證程序。如何使一個ASP.Net驗證依賴於另一個驗證

我的問題是,如果用戶的手進入的11年2月31日的日期,將顯示兩個錯誤消息,一個用於有效日期比較,一個用於比較比越大。由於輸入的日期不是有效日期,我希望顯示該錯誤消息。但是,我不希望顯示第二個錯誤消息。

我的問題是,當用戶輸入一個無效的日期第二次比較驗證正確地確定該數據是無效的,但我不希望它因爲第一確認它已經覆蓋到顯示任何內容。有沒有辦法只使用第二次比較驗證器是第一次比較驗證器通過?我可以使第二個比較驗證程序依賴於第一個嗎?

回答

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" />