无法在继承的Label / TextBox WebControl中设置CssClass属性

时间:2011-07-25 13:36:00

标签: asp.net custom-controls

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

     [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。

有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

由于它看起来不像你正在修改行为,只有数据,我会将属性设置为构造函数中所需的值,而不是覆盖属性本身。

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