C# 从枚举中绑定DropDownList SelectedValue

C# 从枚举中绑定DropDownList SelectedValue,c#,C#,我有一个像这样的称呼的枚举 public enum SALUTATION { MR = 1, MS = 2, MRS = 3, } ddlSalutation.SelectedValue = Enum.GetName(typeof(SALUTATION), staff.Salutation); 在我的员工课程中,我的称呼属性如下: public SALUTATION Salutation { get; set; } 在这里,当编辑

我有一个像这样的称呼的枚举

public enum SALUTATION
{
    MR = 1,
    MS = 2,
    MRS = 3,        
}
ddlSalutation.SelectedValue = Enum.GetName(typeof(SALUTATION), staff.Salutation);
在我的
员工
课程中,我的
称呼
属性如下:

public SALUTATION Salutation
{
     get;
     set;
}
在这里,当编辑员工档案时,我只是绑定数据库中的数据。对于问候语,我只是试着像这样捆绑问候语

public enum SALUTATION
{
    MR = 1,
    MS = 2,
    MRS = 3,        
}
ddlSalutation.SelectedValue = Enum.GetName(typeof(SALUTATION), staff.Salutation);
但它总是将所选值绑定为
-1
。如何绑定ddl选定项中的确切值。有人能帮我吗

在页面加载事件中,我只是将ddl源绑定为

 Hashtable hashSalutation = Utilities.GetEnumList(typeof(SALUTATION));
            ddlSalutation.DataSource = hashSalutation;
            ddlSalutation.DataTextField = "value";
            ddlSalutation.DataValueField = "key";
            ddlSalutation.DataBind();

            ddlSalutation.Items.Insert(0, new ListItem("Select Salutation", "-1"));

public Hashtable GetEnumList(Type enumeration)
    {
        string[] names = Enum.GetNames(enumeration);
        Array values = Enum.GetValues(enumeration);
        Hashtable ht = new Hashtable();
        for (int i = 0; i < names.Length; i++)
        {
            ht.Add(Convert.ToInt32(values.GetValue(i)).ToString(), names[i]);
        }
        return ht;
    }
Hashtable hashsaltation=Utilities.GetEnumList(typeof(saltation));
ddlauplation.DataSource=hashsauplation;
ddlautation.DataTextField=“值”;
ddlautation.DataValueField=“key”;
ddlautation.DataBind();
ddlautation.Items.Insert(0,新列表项(“选择称呼”,“1”));
公共哈希表GetEnumList(类型枚举)
{
字符串[]名称=Enum.GetNames(枚举);
数组值=Enum.GetValues(枚举);
Hashtable ht=新的Hashtable();
for(int i=0;i
首先将其设置为您的数据源

ddSalutation.DataSource = Enum.GetNames(typeof(Salutations));
然后为选定的值

ddlSalutation.SelectedValue = staff.Salutation.ToString();

您是否尝试过
ddlayaltation.SelectedValue=staff.saltation下拉列表的(文本、值)对是什么?似乎您试图指定的值不正确,因为GetName将返回MR、MS或MRS而不是该值,或者尝试
ddlautation.SelectedItem=staff.saltation
如果不是
ddlautation.Text=staff.saltation
@Talha:我尝试了它的显示错误,例如“无法隐式地将称呼转换为字符串”@瑞安人请检查我的最新问题