代码之家  ›  专栏  ›  技术社区  ›  Collin Estes

验证文本框服务器控件的日期

  •  0
  • Collin Estes  · 技术社区  · 14 年前

    我正在尝试创建一个自定义服务器控件,它只是一个带有Ajax ASP.NET MaskedEditexter的文本框,用于在控件失去焦点时使其有效,以确保输入了正确的日期。

    这是目前为止我所拥有的全部,我能够构建控件,但是没有进行任何验证,我在这里做的是什么错误。

    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
        }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Brian Mains    14 年前

    您需要将它们添加到控件集合中。我不知道从文本框继承将得到您想要的;我认为您可能需要从CompositeControl继承,并重写CreateChildControls并创建文本框和扩展程序/验证程序。只需确保将它们全部添加到控件集合…