2010-02-25 32 views
1

我的問題很簡單。可以說我有一個用戶下拉。 在數據庫中,我有我的user表3個字段:在我的MVC應用程序從多個字段填充選擇列表

user_id 
user_name 
user_firstname 

我想這些用戶鏈接到項目。所以這就是爲什麼我想要下拉。

現在,我想有一個選擇列表的,與ID爲值,名字和姓氏是「文」

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

現在我該怎樣在文本獲得名字也?這應該是相當容易的,但似乎它不是...

回答

6

使用LINQ到你的用戶列表轉換成的SelectListItem列表。

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

然後,您可以將其轉換爲SelectList,但您認爲合適。我個人喜歡爲IEnumerable<SelectListItem>定義一個.ToSelectList()擴展方法,但是對於他自己的。

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"); 
+0

這是在你的控制器或模型? –

+0

這是在我的模型中。 – John

相關問題