我创建了一个继承自System.Web.UI.WebControls.Adapters.WebControlAdapter的CheckBoxList适配器。现在,我想知道如何为我的适配器添加自定义属性以及如何让intellisense识别该新属性。
我的属性名为DisabledCssClass,我希望能够编写如下内容:
<asp:CheckBoxList ID="anID"
runat="server"
CssClass="checkBoxList"
DisabledCssClass="SomeCssClass"
DataSourceID="SomeDatasourceId"
DataTextField="SomeTextField"
DataValueField="SomeValueField"
RepeatDirection="Vertical"
RepeatLayout="Table"
RepeatColumns="4">
</asp:CheckBoxList>
在我的适配器类中,我添加了:
private string disabledCssClass;
public string DisabledCssClass
{
get
{
return (disabledCssClass == null ? String.Empty : disabledCssClass);
}
set
{
disabledCssClass = value;
}
}
我需要知道的两件事是:
答案 0 :(得分:3)
您无法通过WebControlAdapter向Web控件添加自定义属性(请参阅“控制适配器的缺点”http://www.singingeels.com/Articles/How_To_Control_Adapters.aspx)。
您最好的方法是创建自己继承自CheckBoxList的类(本文已旧但可能仍然适用http://www.4guysfromrolla.com/articles/100103-1.aspx),创建您自己的UserControl或创建自己的ServerControl。我会选择选项1或2.
答案 1 :(得分:0)
使用CategoryAttribute 装饰要在标记中显示的每个属性:
[Category("Settings")]
从我的观点来看,以下就足够了:
public string DisabledCssClass { get; set; }