0

私はSalutationの列挙型を持っています

public enum SALUTATION
{
    MR = 1,
    MS = 2,
    MRS = 3,        
}

私のstaffクラスでは、私のSalutationプロパティは次のようになります。

public SALUTATION Salutation
{
     get;
     set;
}

ここでは、スタッフ プロファイルの編集中に、データベースからのデータをバインドしているだけです。挨拶のために、私は挨拶を次のようにバインドしようとしました

ddlSalutation.SelectedValue = Enum.GetName(typeof(SALUTATION), staff.Salutation);

ただし、いつものように selectedValue をバインドし-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;
    }
4

1 に答える 1

1

最初にこれをデータソースとして設定します

ddSalutation.DataSource = Enum.GetNames(typeof(Salutations));

次に、選択した値について

ddlSalutation.SelectedValue = staff.Salutation.ToString();
于 2012-07-04T07:28:53.307 に答える