Невозможно установить свойство CssClass в унаследованном Label / TextBox WebControl - PullRequest
0 голосов
/ 25 июля 2011

Я создал очень простой пользовательский элемент управления:

     [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 Ответ

1 голос
/ 25 июля 2011

Поскольку не похоже, что вы изменяете поведение, а только данные, я бы установил в свойствах значения, которые вы хотите в конструкторе, вместо переопределения самих свойств.

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