2009-01-28 66 views
0

我已經創建了一個自定義ASP.NET控件(從WebControls.TextBox派生)。如何使自定義控件的屬性成爲泛型?

我想添加一個屬性到該控件將是一個類型。

該屬性實際上總是某種類型的枚舉。 因此,當在設計器中查看該控件的屬性窗口時 - 我希望能夠通過從特定枚舉中進行選擇來爲該屬性指定值。 所以我想看看有普查員的名單從我傳遞的枚舉..

例(不實際工作中的代碼,將編譯..只是爲了顯示我的意思):

我有2個枚舉:

enum MyEnumABC 
{ 
    A,B,C 
} 

enum MyColor 
{ 
    Red,Blue,Green 
} 

我有這樣的控制:

public class MyTextBox<T> : TextBox 
{ 
    public T Classification 
    { 
     get { } 
     set { } 
    } 
} 

現在我創建具有以下控件的網頁:

<Alex:MyTextBox runat=server id="alex" Classification=MyEnumABC.A></Alex:MyTextBox> 
<Alex:MyTextBox runat=server id="alex2" Classification=MyColor.Red></Alex:MyTextBox> 

問題是我在哪裏可以將類型實際傳遞給該控件的構造函數? (因爲頁面類是調用控件的構造函數的類) 我實際上需要將alex1的類型設置爲MyEnumABC,以及類型MyColor的alex2的類型。

第二個問題是我如何讓VS2008在HTML的設計器中支持這個(所以當我在標籤中鍵入分類 - 它將打開寫入枚舉以選擇值)以及屬性頁的控制。

我希望你明白我的意思。

謝謝。

回答

0

設計師將支持枚舉屬性,而無需做任何特殊的事情。只需在控件的代碼中指定屬性,爲其提供所有常用屬性以允許其顯示在屬性窗口中,屬性窗口將自動在下拉列表中顯示枚舉值。