我创建了一个自定义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设计器中支持这一点(这样当我在标签中键入Classification时 - 它将打开用于选择值的写入枚举)和属性页面控制。
我希望你明白我的意思。
谢谢。
答案 0 :(得分:0)
设计师将支持枚举属性,而无需您执行任何特殊操作。只需在控件代码中指定属性,为其提供所有常用属性,以允许它在属性窗口中显示,属性窗口将自动在下拉列表中显示枚举值。