如何将枚举绑定到下拉列表?

时间:2014-06-18 09:06:44

标签: c# asp.net

我使用linq来获取除一个之外的一组枚举。这是我的Linq

List<SyncRequestTypeEnum> lstDefaultSyncList = (List<SyncRequestTypeEnum>)(Enum
  .GetValues(typeof(SyncRequestTypeEnum))
  .Cast<SyncRequestTypeEnum>()
  .Except(new SyncRequestTypeEnum[] { SyncRequestTypeEnum.ProjectLevel })).ToList();

SyncRequestTypeEnum是我的枚举类,有3个枚举。  我在这里使用(Enum.GetValues(typeof(SyncRequestTypeEnum))所以我得到了价值观。现在我将这些值绑定到dropdownlist:

 ((DropDownList)control).DataSource = HtmlEncodeHelper.HtmlEncode(lstDefaultSyncList );
 ((DropDownList)control).DataBind();

这不会绑定实际的枚举。在UI中,它将值显示为System.Data.DataRowView。如果我使用GetNames代替GetValues,则会抛出强制转换错误

有人可以为此提供帮助吗?

1 个答案:

答案 0 :(得分:0)

以下SO文章完全按照您的要求执行代码示例

How do you bind an Enum to a DropDownList control in ASP.NET?

您在发布之前是否进行过搜索?