C#asp.net从另一个列表中创建字符串列表,该列表返回类对象列表

时间:2014-07-04 04:45:55

标签: c# asp.net

我有一个返回类对象的列表。对于下拉列表数据绑定目的,我需要从以前的列表创建字符串列表。我的主要要求是我需要从数据库中获取两个字段(datavalue,datatext)到下拉列表。有人可以帮我这么做吗

class RoleData
{
    public string id { get; set; }
    public string value { get; set; }
}

private List<RoleData> EmpRoleDataBind(){
        List<RoleData> RoleList = new List<RoleData>();
        if (conn.State.ToString() == "Closed")
        {
            conn.Open();
        }
        string query = "select emp_role_id,description from emp_role";
        MySqlCommand cmd = new MySqlCommand(query,conn);
        MySqlDataReader msdr = cmd.ExecuteReader();

        while (msdr.Read())
        {

            RoleList.Add(
                new RoleData()
                {
                    id = Convert.ToString(msdr["emp_role_id"]),
                    value = Convert.ToString(msdr["description"])
                }    
            );
        }
        msdr.Close();
        conn.Close();
        return RoleList;
    }

1 个答案:

答案 0 :(得分:0)

您可以将DropDownList绑定到列表,并将类属性名称分配给DropDownList属性DataValueFieldDataTextField

dropdownlist1.DataSource = EmpRoleDataBind();
dropdownlist1.DataValueField = "id";
dropdownlist1.DataTextField = "value";
dropdownlist1.DataBind();

作为附加说明

  • 您可能需要将属性的第一个字母大写,请参阅MSDN文章Property Naming Guidelines
  • 当方法EmpRoleDataBind返回 Employee-Role 记录的列表时,我将其命名为GetEmpRoleData而不是EmpRoleDataBind,因为它不绑定DropDownList 1}}。