2011-10-25 46 views
0

我有場景,頁面包含簽入日期和簽出日期以供輸入。我使用datepicker的用戶控件,因此這兩個日期被稱爲相同的用戶控件。 一樣,比較兩個自定義控件的驗證

入住日期:<uc:datepicker ID="CheckInDate" runat="server" /> 離店日期:<uc:datepicker ID="CheckOutDate" runat="server" />

現在我的兩個日期不應該是空白喜歡做驗證。

public class CustomiseDatePickerValidator : BaseValidator 
{ 

    protected override bool EvaluateIsValid() 
     { 
      Control c = this.FindControl(this.ControlToValidate); 
      DatePicker datepickerSelected = c as DatePicker; 
      ICustomiseRadDatePicker additionUserControl = (ICustomiseRadDatePicker)c.Parent; 

      if (string.IsNullOrEmpty(datepickerSelected.DateInput.Text)) 
      { 
       return false; 
      } 

      return true; 
     } 
} 

這是工作正常,但我想也比較這兩個日期選擇器的值,所以在日期檢查應小於離店日期

回答

0

我可能是錯的,但我認爲你需要使用一個CompareValidator此。糾正我,如果我缺少的東西

+0

我知道,但我必須驗證用戶控件內的兩個datepicker。 –

+0

好的,我找到你了,其實你可以使用hack來爲Usercontrols使用驗證控件,我的意思是驗證控件不在UserControl內,只需設置ControlToValidate =「uc1:TextBox1」,其中TextBox1是服務器的名稱控制你想驗證UserControl內的那些。我已經在UserControl的Textbox上成功地爲RequiredValidator工作。希望這可以幫助。 – Vasan

0

更好的解決方案到的CustomValidator是將ValidationPropertyAttribute應用到用戶控件類。這樣,您可以像使用其他任何控件一樣,對用戶控件使用普通的ASP.NET驗證器。