从多个字段填充选择列表

时间:2010-02-25 15:09:00

标签: asp.net-mvc linq-to-sql selectlist

我的问题非常简单。假设我有一个用户下拉列表。 在数据库中,我的用户表有3个字段:

 user_id
 user_name
 user_firstname

在我的MVC应用程序中,我想将这些用户链接到项目。这就是为什么我想要下拉列表。

现在,我希望有一个选择列表,ID为值,名字和姓氏为'text'

  SelectList sl = new SelectList(users, "user_id", "user_name");

现在我如何在文本中获得名字?这应该相当容易,但似乎不是......

2 个答案:

答案 0 :(得分:6)

使用LINQ将您的用户列表转换为SelectListItem

列表
var selectOptions = 
    from u in yourUserQuery
    select new SelectListItem { 
        Value = u.user_id, 
        Text = u.user_firstname + " " + u. user_name 
    };

然后,您可以将其转换为SelectList,但您认为合适。我个人喜欢为.ToSelectList()定义一个IEnumerable<SelectListItem>扩展方法,但是要为每个方法定义一个。{/ p>

答案 1 :(得分:1)

您需要以您需要的格式从数据库构建列表。这是我在数据库读入DataTable后所做的事情,

        IList<UsrInfo> MyResultList = new List<UsrInfo>();
        foreach (DataRow mydataRow in myDataTable.Rows)
        {
            MyResultList.Add(new UsrInfo()
            {
                Usr_CD = mydataRow["USR_NR"].ToString().Trim(),
                Usr_NA = mydataRow["USR_NA_LAST"].ToString().Trim() + " , " +
                         mydataRow["USR_NA_FIRST"].ToString().Trim()
            });
        }

        return new SelectList(MyResultList, "Usr_CD", "Usr_NA");
相关问题