asp.net中的自定义文本框控件

时间:2010-03-28 14:07:21

标签: asp.net controls

我正在尝试创建一个带有enum kind属性的自定义文本框(如textmode)。枚举值将来自数据库。但是枚举不能充满活力......还有另一种出路吗?

3 个答案:

答案 0 :(得分:0)

最接近的是整数属性。

答案 1 :(得分:0)

枚举是编译时常量。如果数据库值在运行时不会更改,那么您始终可以使用codegen工具从数据库生成枚举值(在预编译时)。如果它们会改变,你可能只需要做一个字符串属性或类似的东西,而不是枚举。

答案 2 :(得分:0)

您必须编写自定义TypeConverter才能完成此任务。

public class MyItemsConverter : TypeConverter
{

    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
    {
        StringCollection values = new StringCollection();

        // Connect to database and read values.

        return new StandardValuesCollection(values);
    }

    public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
    {
        return (context != null);
    }

    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
    {
        return true;
    }

}

public class MyControl : WebControl
{

    [TypeConverter(typeof(MyItemsConverter))]
    public string MyItem { get; set; }

}