从下拉列表中输入枚举值

时间:2013-12-23 07:04:32

标签: c# enums

所有

有一个枚举

public enum Response
{
good= 100,
bad= 101,
Somewhat good = 102,
......
}

这将绑定到一个下拉列表,其中显示文本,并在下拉列表项的值部分设置值。

有一个用于更新数据库的基本库方法

public bool UpdateResponse(int id , Enums.Response response)
{
//do business logic
}

点击按钮我得到了下拉值,但无法将其转换为enum以供接受方法使用。

button_Click(object sender, EventArgs e)
{
var response = Enum.GetName(typeof(Enums.Response),DrpResponse.SelectedValue);
updateResponse(id , response) ;
//giving error of unnable to cast string to enum...
}

2 个答案:

答案 0 :(得分:4)

您的response变量属于string类型,而不是Response所需的变量。 (顺便说一句。这是一个很好的例子,为什么你应该非常小心地使用var关键字。)

将您的代码更改为:

Enums.Response response = (Enums.Response)Enum.ToObject(typeof(Enums.Response),DrpResponse.SelectedValue);
updateResponse(id , response) ;

答案 1 :(得分:2)

尝试以下代码 -

Response test; // set default value.
Enum.TryParse<Enums.Response> (DrpResponse.SelectedValue,out test);
相关问题