2013-05-03 25 views
0

在aspx文件我有: = Html.DropDownList( 「SITEID」,計算機[ 「站點」]作爲的SelectList)排序的HTML下拉菜單(的SelectList)在ASP.NET,C#

在CS文件I有:

ViewData [「Sites」] = new SelectList(pr.GetUnassignedPortfolioSites(GetAuthenticatedContext(),id),「SiteID」,「SiteName」);

它可以工作,但是,我需要對SelectList進行排序,以便在選擇下拉菜單時對其進行很好的排序。

此外,我需要從列表中選擇一個項目,並使其出現在單擊下拉菜單之前可見的第一個項目。

非常感謝您的幫助!

PS我已經試過看槽其他的例子,但沒有運氣。

+0

哪一個是你想用默認選擇的項目? – 2013-05-03 14:07:49

+0

無論是從「SiteID」還是「SiteName」,我都需要首先在列表中搜索它。 – 2013-05-03 14:08:45

+0

到目前爲止的任何反饋? – 2013-05-03 19:13:21

回答

0

我已經改變了一點,看起來像SelectList有一些問題來設置默認選擇的項目。

看看這個:

@{ 
    List<SelectListItem> list = (List<SelectListItem>)ViewData["Sites"]; 
    list.Where(x => x.Value == "1").Single().Selected = true; 
} 
@Html.DropDownList("SiteID", list.OrderBy(x => x.Selected).ThenBy(x => x.Text)) 

而且控制器:

 List<SelectListItem> items = new List<SelectListItem>(); 

     items.Add(new SelectListItem { Text = "Action", Value = "0" }); 

     items.Add(new SelectListItem { Text = "Drama", Value = "1" }); 

     items.Add(new SelectListItem { Text = "Comedy", Value = "2" }); 

     items.Add(new SelectListItem { Text = "Science Fiction", Value = "3" }); 

     ViewData["Sites"] = items; 
+0

我想報告一個問題的解決方案,但其他人需要解決它,並且我沒有時間查看解決方案......謝謝! – 2013-05-13 18:27:18