0

我的 aspx 中有以下下拉菜单:

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

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

我这样填充了我的下拉列表:

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

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

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

CustomType? myvar = ddl1.Text

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

4

2 回答 2

1

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

CustomType? myvar = (CustomType?) Enum.Parse(typeof(CustomType), ddl1.Text, true)
于 2012-10-09T21:54:15.113 回答
0

如果CustomType是一个enum,而不是绑定枚举的名称,我会在您绑定到枚举的值时设置下拉列表的byte值。然后,当您尝试投射到 时CustomType,您可以这样做:

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

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

CustomType? myvar;
if(/*Criteria*/)
{
    myvar = (CustomType)byte.Parse(ddl1.Text);
}
else
{
    myvar = null;
}
于 2012-10-09T21:56:13.723 回答