Si tengo la siguiente enumeración

public enum EmployeeType
{
    Manager = 1,
    TeamLeader,
    Senior,
    Junior
}

y he DropDownList y quiero enlazar este EmployeeType enum para el DropDownList, ¿hay alguna manera de hacerlo?

InformationsquelleAutor Hotmoil | 2010-06-23

5 Comentarios

  1. 69

    si usted tiene DropDownList objeto llamado ddl usted puede hacerlo de la siguiente

    ddl.DataSource = Enum.GetNames(typeof(EmployeeType));
    ddl.DataBind();

    si desea que el valor de Enumeración de Vuelta en la Selección ….

     EmployeeType empType = (EmployeeType)Enum.Parse(typeof(EmployeeType), ddl.SelectedValue);
  2. 12

    puede utilizar la expresión lambda

            ddl.DataSource = Enum.GetNames(typeof(EmployeeType)).
            Select(o => new {Text = o, Value = (byte)(Enum.Parse(typeof(EmployeeType),o))});
            ddl.DataTextField = "Text";
            ddl.DataValueField = "Value";
            ddl.DataBind();

    o Linq

            ddl.DataSource = from Filters n in Enum.GetValues(typeof(EmployeeType))
                    select new { Text = n, Value = Convert.ToByte(n) };
            ddl.DataTextField = "Text";
            ddl.DataValueField = "Value";
            ddl.DataBind();
    • Leve error tipográfico en la expresión lambda ejemplo (falta una llave de cierre). ddl.DataSource = Enum.GetNames(typeof(EmployeeType)). Seleccione(o => nuevo { Texto = o, el Valor = (byte)(Enum.Parse(typeof(EmployeeType), o)) });
  3. 1

    Escribí una función auxiliar para darme un diccionario que puedo enlazar:

    public static Dictionary<int, string> GetDictionaryFromEnum<T>()
    {
    
        string[] names = Enum.GetNames(typeof(T));
    
        Array keysTemp = Enum.GetValues(typeof(T));
        dynamic keys = keysTemp.Cast<int>();
    
        dynamic dictionary = keys.Zip(names, (k, v) => new {
            Key = k,
            Value = v
        }).ToDictionary(x => x.Key, x => x.Value);
    
        return dictionary;
    }
  4. 0

    Aún más sencillo:

     ddl.DataSource = Enum.GetValues(typeof(EmployeeType));

    A continuación, volver:

    EmployeeType etSelected = (EmployeeType)ddl.SelectedValue;

Dejar respuesta

Please enter your comment!
Please enter your name here