0
我創建了一個非常簡單的自定義控制:不能設置CssClass屬性在繼承的標籤/文本框的WebControl
[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。
有什麼建議嗎?
在此先感謝
謝謝。完美工作。你知道爲什麼它必須在構造器中完成,而不是在過度纏身的屬性中? (就我所知,將來)。再次感謝。 – Seany84
我不知道爲什麼重寫的行和TextBoxMode屬性爲你工作,而沒有通過標記或代碼文件中的其他地方設置它們 - AFAIK,他們只返回值,並沒有實際設置對象上的任何東西。 CssClass的getter做的是一樣的 - 只返回一個字面值而不引用對象上的任何東西。你需要在標記中調用CssClass的setter,你可以通過CssClass =「textboxStyle」來完成。 處理此問題的另一種方法是通過在屬性上設置DefaultValueAttribute。 – wonkim00