2011-12-13 37 views
0

我創建了一個從System.Web.UI.WebControls.Adapters.WebControlAdapter繼承的CheckBoxList適配器。現在,我想知道如何將自定義屬性添加到適配器以及如何讓智能感知識別新屬性。如何將自定義屬性添加到具有智能感知支持的Web控制適配器?

我的屬性被稱爲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; 
    } 
} 

的兩件事情,我需要知道是:

  1. 我該怎麼做,以獲得該屬性自動初始化與指定在asp控制的值?
  2. 如何讓Intellisense識別/顯示新屬性?

回答

0

裝飾你想在標記可見與CategoryAttribute爲每個屬性:

[Category("Settings")] 

從我的觀點來看,以下就足夠了:

public string DisabledCssClass { get; set; } 
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.

+0

您可以通過您的webcontroladapter讀取添加到您的webcontrol的自定義屬性,這實際上會變成同樣的東西? – cstruter 2013-07-09 06:24:11

相關問題