我在我的ASP.NET应用程序中使用C#,并且有些属性我不想存储在数据库中。我想为这些属性使用一个定义的结构,如下所示:
public struct MedicalChartActions
{
public const int Open = 0;
public const int SignOff = 1;
public const int Review = 2;
}
所以当我使用等于“0”的MedicalChartActions.Open
时,我得到整数值,但是如何将它绑定到DropDownList
控件,这样我才能显示变量名?如何通过值获取变量名称?例如,如果值等于“0”,我该如何返回“打开”?
答案 0 :(得分:2)
我会使用像SLaks建议的枚举器,而不是使用结构。
public enum MedicalChartActions : int
{
Open = 0,
SignOff = 1,
Review = 2
}
然后你可以这样做:
var actions = from MedicalChartActions action in Enum.GetValues(typeof(MedicalChartActions))
select new
{
Name = action.ToString(),
Value = (int)action;
};
DropDownList1.DataSource = actions.ToList();
DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "Value";
DropDownList1.DataBind();
修改强>
将结构更改为枚举后,您可以从值中获取名称,如下所示:
int value = 0;
MedicalChartActions action = (MedicalChartActions)value;
string actionName = action.ToString();
答案 1 :(得分:0)
如果是我并且您不想点击数据库来加载可能的值,我只需将值硬编码到程序中。
首先,以声明方式创建下拉列表:
<asp:DropDownList ID="List1" runat="server">
<asp:ListItem Text="Open" Value="0" />
<asp:ListItem Text="SignOff" Value="1" />
<asp:ListItem Text="Review" Value="2" />
</asp:DropDownList>
接下来,使用List1.SelectedValue获取所选值(0,1,2)。请注意,这些将是字符串,因此如果您需要将它们作为数字使用,则需要使用Convert.ToInt32(List1.SelectedValue)
将它们转换为整数。
您还可以创建一个枚举,这样您就不必在代码中对一堆数字进行硬编码:
public enum MyEnum {Open, SignOff, Review};
现在您可以将值称为MyEnum.Open而不是0。