0

在 aspx 文件中我有: = Html.DropDownList("SiteID", ViewData["Sites"] as SelectList)

在cs文件中我有:

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

它可以工作,但是,我需要对 SelectList 进行排序,以便在选择下拉菜单时对其进行很好的排序。

另外,我需要从列表中选择一个项目,并使其在单击下拉菜单之前显示为可见的第一个项目。

非常感谢您的帮助!

PS我试过寻找其他例子,但没有运气。

4

1 回答 1

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;
于 2013-05-03T14:30:42.843 回答