MVC3 中带有 "Select All" 选项的下拉列表

Dropdownlist with "Select All" option in MVC3

所以我希望标题能说明一切。

我想创建一个下拉列表,在最顶部有一个 "select all" 选项。 问题是我不知道如何开始这个并且希望有人可以帮助我完成这个任务。经过一番浏览后,我找不到任何好的例子,所以决定 post 在这里回答这个问题。

我对 MVC 还不是很了解,我还在学习中。也无法向您展示任何代码,因为正如我之前所说,我不知道从哪里开始。

我不是要整个代码示例,而是要一个示例,说明如何执行此操作以及如何开始。这样我就可以从中学习,也许在你们的帮助下我自己也能做到。

你们能帮一个菜鸟程序员,帮我一下吗?

最好的办法是在 MVC 中使用 Html 帮助器、DropDownListDropDownListFor。您可以使用 IEnumerable 提供这些。

所以基本上在添加您的初始元素后构建您的 Select 列表,该元素的键为 'Select All'

@Html.DropDownListFor(m => m.SelectedId, m.SelectList)

其中 SelectedId 是您模型中的 属性,它将包含回传中的选定选项,而 SelectList 是您的 SelectListItems 列表。

var model = new TestViewModel();
model.SelectList = new List<SelectListItem>();
model.SelectList.Add(new SelectListItem(){ Value = "0", Key = "Select All" });

资源

ASP.NET Using the DropDownList helper

MSDN

好吧,对于一个,DropDownListFor 呈现一个单一的 select,所以你不能使用它和 "select all",因为不可能将所有项目传回一个-select.

可以使用ListBoxFor,这将生成多个-select。首先,这至少会让你实际上 select 全部。但是,没有 selecting select 列表中所有项目的 HTML 方法,因此 MVC 无法为您提供这样的控制,因为它是 HTML。您可以实现一些自定义的 JavaScript,它会在单击按钮或其他东西时激活,然后以编程方式 select select 列表中的所有项目。参见:Select all or Unselect all in listbox using jquery?