2010-08-03 45 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并创建文本框以及扩展器/验证器。只要确保将它们全部添加到控件集合中...