假设我有以下简单的枚举:

enum Response
{
    Yes = 1,
    No = 2,
    Maybe = 3
}

如何将这个枚举绑定(bind)到DropDownList控件,以便在列表中显示说明并在选择选项后检索相关的数值(1,2,3)?

最佳答案

我可能不会将绑定(bind)到数据,因为它是一个枚举,并且在编译后不会改变(除非我遇到了那些愚蠢的时刻)。

最好只是遍历枚举:

Dim itemValues As Array = System.Enum.GetValues(GetType(Response))
Dim itemNames As Array = System.Enum.GetNames(GetType(Response))

For i As Integer = 0 To itemNames.Length - 1
    Dim item As New ListItem(itemNames(i), itemValues(i))
    dropdownlist.Items.Add(item)
Next

或在C#中相同
Array itemValues = System.Enum.GetValues(typeof(Response));
Array itemNames = System.Enum.GetNames(typeof(Response));

for (int i = 0; i <= itemNames.Length - 1 ; i++) {
    ListItem item = new ListItem(itemNames[i], itemValues[i]);
    dropdownlist.Items.Add(item);
}

09-27 13:21