asp.net中的自定义文本框控件
我正在尝试在itlike textmode中创建一个带有枚举种类属性的自定义文本框。枚举值将来自数据库。但是枚举不能是动态的..还有别的办法吗 最接近的是整数属性。枚举是编译时常量。如果数据库值在运行时不会更改,则始终可以使用codegen工具在预编译时从数据库生成枚举值。如果它们将发生更改,您可能只需要执行字符串属性或类似操作,而不是枚举。您必须编写自定义类型转换器来完成此任务asp.net中的自定义文本框控件,asp.net,controls,Asp.net,Controls,我正在尝试在itlike textmode中创建一个带有枚举种类属性的自定义文本框。枚举值将来自数据库。但是枚举不能是动态的..还有别的办法吗 最接近的是整数属性。枚举是编译时常量。如果数据库值在运行时不会更改,则始终可以使用codegen工具在预编译时从数据库生成枚举值。如果它们将发生更改,您可能只需要执行字符串属性或类似操作,而不是枚举。您必须编写自定义类型转换器来完成此任务 public class MyItemsConverter : TypeConverter { publi
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;
}
}
您好,欢迎回复!代码可以工作,但是当从下拉列表中选择一个值时,每次单击GetStandardValues都会调用两次…哪里出错了???@anay,你是对的。虽然它只在设计时发生,但并不重要。无论如何,您可以缓存数据以提高性能。
public class MyControl : WebControl
{
[TypeConverter(typeof(MyItemsConverter))]
public string MyItem { get; set; }
}