.Net MVC 5 多 Select 列表框
.Net MVC 5 Multi-Select List Box
我正在尝试创建一个多 select 框,到目前为止尝试了很多东西。
public class DepartmentDropDown
{
public int Id { get; set; }
public string Name { get; set; }
}
public class DeviceUserReportViewModel
{
public List<int> DepartmentIds { get; set; }
public List<DepartmentDropDown> Departments { get; set; }
}
public IActionResult DeviceUserReport()
{
IEnumerable<DepartmentDropDown> departments = _unitOfWork.Repository<Department>().Get().Select(s=> new DepartmentDropDown { Id = s.Id, Name = s.Name });
DeviceUserReportViewModel model = new DeviceUserReportViewModel
{
Departments = departments
};
}
并且在 DeviceUserReport.cshtml
@Html.ListBoxFor(s => s.DepartmentIds,new MultiSelectList(Model.Departments,"Id","Name"),new { @class = "form-control"})
还是这样显示列表框
Html.ListBoxFor
扩展方法创建 ListBox
控件并允许用户一次性 select 多个选项。当您想为用户提供多种选择时,它非常有用。
您可以按如下方式定义此控件:
@Html.ListBoxFor(model => model.property, ItemList, object HtmlAttribute)
Model => model.property:它包含 selected 项目的 ID ItemList:它是一个项目列表 Object HtmlAttributes:
它为 ListBox Control 设置了额外的属性。
与 multiple-selection 列表框一样,标准列表框允许用户 select 列表中的值。但是,对于列表框,用户只能 select 列表中的一项。与 multiple-selection 列表框一样,列表框默认显示列表中的所有项目。
你的代码很完美。所以要 select 列表中的多个项目只需按 Ctrl + 鼠标单击。
对于所有提出相同问题的开发者 =>
在 .Net MVC 应用程序中,没有任何附加库,您最多可以做的是:
使用 this jQuery 库,您可以将 .Net MVC Multi-Select 框变成这样:
将此 js 和 css 添加到您的应用程序
- https://github.com/mysociety/jquery-multi-select/blob/master/src/jquery.multi-select.js
- https://github.com/mysociety/jquery-multi-select/blob/master/src/example-styles.css
并使用 $('#mySelectList').multiSelect();
将您的输入区域标记为多选
注意:当使用问题中的代码时,此multi-select列表将模型中的列表int发送到服务器端。
我正在尝试创建一个多 select 框,到目前为止尝试了很多东西。
public class DepartmentDropDown
{
public int Id { get; set; }
public string Name { get; set; }
}
public class DeviceUserReportViewModel
{
public List<int> DepartmentIds { get; set; }
public List<DepartmentDropDown> Departments { get; set; }
}
public IActionResult DeviceUserReport()
{
IEnumerable<DepartmentDropDown> departments = _unitOfWork.Repository<Department>().Get().Select(s=> new DepartmentDropDown { Id = s.Id, Name = s.Name });
DeviceUserReportViewModel model = new DeviceUserReportViewModel
{
Departments = departments
};
}
并且在 DeviceUserReport.cshtml
@Html.ListBoxFor(s => s.DepartmentIds,new MultiSelectList(Model.Departments,"Id","Name"),new { @class = "form-control"})
还是这样显示列表框
Html.ListBoxFor
扩展方法创建 ListBox
控件并允许用户一次性 select 多个选项。当您想为用户提供多种选择时,它非常有用。
您可以按如下方式定义此控件:
@Html.ListBoxFor(model => model.property, ItemList, object HtmlAttribute)
Model => model.property:它包含 selected 项目的 ID ItemList:它是一个项目列表 Object HtmlAttributes:
它为 ListBox Control 设置了额外的属性。
与 multiple-selection 列表框一样,标准列表框允许用户 select 列表中的值。但是,对于列表框,用户只能 select 列表中的一项。与 multiple-selection 列表框一样,列表框默认显示列表中的所有项目。
你的代码很完美。所以要 select 列表中的多个项目只需按 Ctrl + 鼠标单击。
对于所有提出相同问题的开发者 =>
在 .Net MVC 应用程序中,没有任何附加库,您最多可以做的是:
使用 this jQuery 库,您可以将 .Net MVC Multi-Select 框变成这样:
将此 js 和 css 添加到您的应用程序
- https://github.com/mysociety/jquery-multi-select/blob/master/src/jquery.multi-select.js
- https://github.com/mysociety/jquery-multi-select/blob/master/src/example-styles.css
并使用 $('#mySelectList').multiSelect();
注意:当使用问题中的代码时,此multi-select列表将模型中的列表int发送到服务器端。