从Drop Down到Nullable类型中转换对象

时间:2012-10-09 21:43:07

标签: c# asp.net

我的aspx中有以下内容:

<aspx:DropDownList
ID="ddl1"
runat="server"/>

在代码隐藏(C#)中,我想从DropDownList中检索值。

我填充了我的下拉列表:

ddl1.DataSource = LocationOfData;
ddl1.DataBind();

LocationOfData返回CustomType类型。编辑:CustomType是一个枚举。

我希望能够完成以下任务:

CustomType? myvar = ddl1.Text

换句话说,使用我的CustomType创建一个可以为null的变量,并将其设置为等于下拉列表中的变量。但是我只能从ddl1中检索Text(String)的类型。

2 个答案:

答案 0 :(得分:1)

如果CustomType是枚举,则首先必须将ddl1.Text解析为枚举,然后将其转换为Nullable类型:

CustomType? myvar = (CustomType?) Enum.Parse(typeof(CustomType), ddl1.Text, true)

答案 1 :(得分:0)

如果CustomTypeenum,而不是绑定枚举的名称,我会在绑定到枚举的byte值时设置下拉列表的值。然后,当您尝试转换为CustomType时,您可以执行以下操作:

CustomType myvar = (CustomType)byte.Parse(ddl1.Text);

首先检查以创建可空类型。我不知道你的标准是什么,但是:

CustomType? myvar;
if(/*Criteria*/)
{
    myvar = (CustomType)byte.Parse(ddl1.Text);
}
else
{
    myvar = null;
}