不能在继承的标签/文本框WebControl中设置CssClass属性



我已经创建了一个非常简单的自定义控件:

     [assembly: System.Web.UI.TagPrefix("CustomMultiLineTextBox", "evo")]
        public class CustomMultiLineTextBox : 
            System.Web.UI.WebControls.TextBox
        {
            public override int Rows
            {
                get
                {
                    return 5;
                }
            }
            public override System.Web.UI.WebControls.TextBoxMode TextMode
            {
                get
                {
                    return System.Web.UI.WebControls.TextBoxMode.MultiLine;
                }
            }
    public override string CssClass
            {
                get
                {
                    return "textboxStyle";
                }
                set
                {
//base.CssClass = "textboxStyle";
                    base.CssClass = value;
                }
            }
        }
        }

然而,当我把这个控件放到aspx页面上时,CssClass似乎不适用。TextMode和Rows属性设置正确。

    <evo:CustomMultiLineTextBox ID="txtTrainingNeeds" runat="server">
</evo:CustomMultiLineTextBox>

只有当我添加CssClass="textboxStyle"标记,CssClass才会被应用。

有什么建议吗?

Thanks in advance

因为看起来不像是在修改行为,而只是修改数据,所以我会在构造函数中将属性设置为您想要的值,而不是覆盖属性本身。

public CustomMultiLineTextBox()
{
    Rows = 5;
    TextBoxMode = System.Web.UI.WebControls.TextBoxMode.MultiLine;
    CssClass = "textboxStyle";
}

最新更新