2010-08-03 43 views
0

我想創建一個自定義服務器控件,它只是一個帶有AJAX asp.net MASKEDEDITEXTENDER的文本框,以便在失去焦點時確保控件有效,從而確保輸入了正確的日期。日期驗證文本框服務器控件

這是我迄今爲止所有的,我能夠建立控制,但沒有驗證正在發生我在這裏做錯了什麼。

namespace One_Eva_Control_Library 
{ 

    [ToolboxData("<{0}:Valid_Date_Textbox runat=server></{0}:Valid_Date_Textbox>")] 
    public class Valid_Date_Textbox : System.Web.UI.WebControls.TextBox 
    { 

    #region Methods 
     /// <summary> 
     /// Creates Validator 
     /// </summary> 
     /// <param name="e">Init eventArg</param> 
     protected override void OnInit(EventArgs e) 
     { 
      base.OnInit(e); 

      MaskedEditExtender meDateValidator = new MaskedEditExtender(); 

      meDateValidator.ID = "dateExtender"; 
      meDateValidator.Mask = "99/99/9999"; 
      meDateValidator.MessageValidatorTip = true; 
      meDateValidator.MaskType = MaskedEditType.Date; 
      meDateValidator.UserDateFormat = MaskedEditUserDateFormat.DayMonthYear; 
      meDateValidator.CultureName = "en-GB"; 


      MaskedEditValidator meEditValidtor = new MaskedEditValidator(); 

      meEditValidtor.ControlExtender = meDateValidator.ID; 
      meEditValidtor.ControlToValidate = base.ID; 
      meEditValidtor.InvalidValueMessage = "Invalid Date"; 
      meEditValidtor.Display = ValidatorDisplay.Dynamic; 
      meEditValidtor.TooltipMessage = "Input date in 99/99/9999 format"; 
      meEditValidtor.InvalidValueMessage = "*"; 
      meEditValidtor.ValidationGroup = "MKE"; 


     } 




    #endregion 
    } 

回答

0

您需要將它們添加到控件集合中。我不知道從TextBox繼承會得到你想要的;我想你可能需要從CompositeControl繼承,並重寫CreateChildControls並創建文本框以及擴展器/驗證器。只要確保將它們全部添加到控件集合中...