2011-10-10 99 views
4

我在我的ASP.NET应用程序中使用C#,并且有一些属性我不想存储在数据库中。我想用一个定义结构的这些属性,就像这样:如何将结构绑定到DropDownList

public struct MedicalChartActions 
    { 
     public const int Open = 0; 
     public const int SignOff = 1; 
     public const int Review = 2; 
    } 

所以我得到的整数值,当我使用MedicalChartActions.Open等于“0”,但如何将其绑定到DropDownList控制,所以我可以显示变量名?我如何通过值获取变量名称?例如,如果值等于“0”,我该如何返回“打开”?

+0

Metro?的WinForms? WPF? Silverlight的? ASP.Net? MonoTouch的? – SLaks

+5

你应该使用'enum'。 – SLaks

+0

这是一个asp.net web应用程序。我更新了我的帖子。谢谢。 –

回答

2

而不是使用结构,我会使用像SLaks建议的枚举。

public enum MedicalChartActions : int 
{ 
    Open = 0, 
    SignOff = 1, 
    Review = 2 
} 

然后,你可以做这样的事情:一旦你改变了结构,以枚举

​​

编辑

,你可以从这样的价值得到名字:

int value = 0; 
MedicalChartActions action = (MedicalChartActions)value; 

string actionName = action.ToString();  
+0

谢谢,那么当我已经知道“0”时如何获得“打开”? –

+0

@james johnson但是如果我们在值中有空间 – Dragon

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。

+0

这里的缺点是你需要复制这个DropDownList,无论使用哪个枚举。 –

+0

是的,我更喜欢你的解决方案。您在发布我的信息时发布了它。 –

+0

@MikeChristensen但是我们如何在枚举中使用空格 – Dragon

相关问题