gpt4 book ai didi

c# - 需要根据枚举显示复选框列表

转载 作者:行者123 更新时间:2023-11-30 15:42:36 25 4
gpt4 key购买 nike

我需要显示一个复选框列表,每个 html 表格行 3 个。

每个复选框的标签和值将来自枚举。

构造它并在网络表单中显示它的最佳方法是什么?

我正在考虑只使用文字控件,并在 htmltable 对象内生成控件。

评论?

最佳答案

我会考虑一个带有数据的装饰器模式。

 public enum MyEnum
{
[Description("Display Text")]
SomeEnumValue = 1,

[Description("More Display Text")]
AnotherEnumValue = 2
}

然后您将创建一个获取该数据的方法,如下所示:

public IEnumerable<ListItem> GetListItemsForEnum<EnumType>() where EnumType : struct
{
if (!typeof(EnumType).IsEnum) throw new InvalidOperationException("Generic type argument is not a System.Enum");
var names = Enum.GetNames(typeof(EnumType));

foreach (var name in names)
{
var item = new ListItem();
var fieldInfo = typeof(EnumType).GetField(name);
var attribute = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault(x => x is DescriptionAttribute) as DescriptionAttribute;
if (attribute != null)
{
item.Text = attribute.Description;
item.Value = Enum.Parse(typeof(EnumType), name).ToString();
yield return item;
}
}
}

然后您可以简单地在具有描述属性的任何枚举上调用该方法并获得 IEnumerable<ListItem>绑定(bind)时使用。

关于c# - 需要根据枚举显示复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com