2011-10-10 80 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

相關問題