扩展功能(WEB项目中):
   1.新增下拉功能, 下拉显示的数据从数据库中读取,
    
   2.TextBox里的文本, 即可以自己输入, 也可以从下拉选择。望有经验的朋友, 给点思路, 最好有实例。
多谢!

解决方案 »

  1.   

    呵呵,你有想法.
    大部分见过的都是用Div模拟出来的效果!像google的search.
      

  2.   

    奇怪,为什么不用combobox来实现?那样更为方便吧?什么下拉效果和从数据库查出来的匹配项不都有地方显示了?
      

  3.   

    重写textbox属性和事件
    参考
    http://www.cnblogs.com/honliv/articles/809353.html
    http://www.cnblogs.com/admin11/articles/1259577.html
      

  4.   

    请试用ajaxtoolkit 中的autocomplete 控件
      

  5.   

            [Category("自定义信息区")]
            [DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体删除线"), NotifyParentProperty(true)]
            public bool ValidateFontStrikeout
            {
                get
                {                if (ViewState["ValidateFontStrikeout"] != null)
                        return (bool)ViewState["ValidateFontStrikeout"];
                    return false;
                }
                set { ViewState["ValidateFontStrikeout"] = value; }
            }
            [Category("自定义信息区")]
            [DefaultValue(""), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的CSSClass属性"), NotifyParentProperty(true)]
            public string ValidateCSSClass
            {
                get
                {                if (ViewState["ValidateCSSClass"] != null)
                        return ViewState["ValidateCSSClass"].ToString();
                    return string.Empty;
                }
                set { ViewState["ValidateCSSClass"] = value; }
            }
            [Category("自定义信息区")]
            [DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体下划线"), NotifyParentProperty(true)]
            public bool ValidateFontUnderline
            {
                get
                {                if (ViewState["ValidateFontUnderline"] != null)
                        return (bool)ViewState["ValidateFontUnderline"];
                    return false;
                }
                set { ViewState["ValidateFontUnderline"] = value; }
            }
            [Category("自定义信息区"), DefaultValue(""), Description("验证控件的字体名")]
            [Editor("System.Drawing.Design.FontNameEditor, System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), TypeConverter(typeof(FontConverter.FontNameConverter))]
            public string ValidateFontName
            {
                get
                {
                    if (ViewState["ValidateFontName"] != null)
                        return (string)ViewState["ValidateFontName"];
                    return string.Empty;
                }
                set
                {
                    ViewState["ValidateFontName"] = value;
                }
            }        #endregion        #region 构造函数
            public xxxTextBox() { }
            #endregion        #region 重写子控件
            protected override void EnsureChildControls()
            {
                this.rfvDataInput.CssClass = this.CssError;
                this.rfvDataInput.ErrorMessage = "*输入不能为空";
                this.rfvDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
                this.rfvDataInput.EnableViewState = true;
                this.rfvDataInput.ControlToValidate = base.ID;
                this.rfvDataInput.ForeColor = ValidateForeColor;            this.rfvDataInput.BackColor = ValidateBackColor;
                if (ValidateFontSize != null)
                {
                    this.rfvDataInput.Font.Size = ValidateFontSize;
                }
               
                this.rfvDataInput.Font.Bold = ValidateFontBold;
                this.rfvDataInput.Font.Italic = ValidateFontItalic;
                this.rfvDataInput.Font.Strikeout = ValidateFontStrikeout;
                this.rfvDataInput.Font.Overline = ValidateFontOverLine;
                this.rfvDataInput.Font.Underline = ValidateFontUnderline;
                if (!string.IsNullOrEmpty(ValidateFontName))
                    this.rfvDataInput.Font.Name = ValidateFontName;
                if (!string.IsNullOrEmpty(ValidateCSSClass))
                    this.rfvDataInput.CssClass = ValidateCSSClass;            this.revDataInput.CssClass = this.CssError;
                this.revDataInput.ErrorMessage = "*输入格式错误";
                this.revDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
                this.revDataInput.EnableViewState = true;
                this.revDataInput.ControlToValidate = base.ID;
                this.revDataInput.ForeColor = ValidateForeColor;            this.revDataInput.BackColor = ValidateBackColor;
                if (ValidateFontSize != null)
                {
                    this.revDataInput.Font.Size = ValidateFontSize;
                }
                this.revDataInput.Font.Bold = ValidateFontBold;
                this.revDataInput.Font.Bold = ValidateFontBold;
                this.revDataInput.Font.Italic = ValidateFontItalic;
                this.revDataInput.Font.Strikeout = ValidateFontStrikeout;
                this.revDataInput.Font.Overline = ValidateFontOverLine;
                this.revDataInput.Font.Underline = ValidateFontUnderline;
                if (!string.IsNullOrEmpty(ValidateFontName))
                    this.revDataInput.Font.Name = ValidateFontName;
                if (!string.IsNullOrEmpty(ValidateCSSClass))
                    this.revDataInput.CssClass = ValidateCSSClass;            //将子控件添加到此自定义控件中
                this.Controls.Add(rfvDataInput);
                this.Controls.Add(revDataInput);
             
                this.Controls.Add(pnlFrame);
                if (this.ValidType == DataType.Date)
                    this.Attributes.Add("onfocus", "WdatePicker({isShowClear:false,readOnly:true})");
            }
            #endregion
      

  6.   

    呵呵 楼主肯定知道combobox滴!所以……
    5楼很强