我有一个员工列表,我需要按以下格式显示:表格中提到employee's name
,if he's an employee
和if he's permanent
表示为复选框。
我还希望能够通过选中Name
列左侧的复选框来检查所有复选框,并通过选中每行右侧的复选框来选择员工。
示例:如果我选中Jhon Smith左侧的框,则会检查Employee和Permanent列。
检查它应该不是jQuery的问题,但我有一些困难的时间将其绑定到视图,然后一旦保存就将其发送回控制器。
答案 0 :(得分:0)
(这是针对MVC 4我不确定是否有任何改变)
如果您使用强类型视图,这很容易做到。
强类型视图上自动生成的“列表”类型与该布局类似。
假设此视图需要@model List<EmployeeViewModel>
。使用CheckBoxViewModel
类创建一个强类型的局部视图,用于每个员工复选框属性,该属性具有标签的条目和复选框的id,其中包含bool用于其检查。
然后,您可以使用Html.EditorFor
与CheckBoxViewModel
上的EmployeeViewModel
一起显示此部分视图。部分视图将是... ...
@model CheckBoxViewModel
@Html.CheckBoxFor(cbox => cbox.Checked)
@Html.LabelFor(cbox => cbox.Checked, Model.Label)
@Html.HiddenFor(cbox => cbox.Id)
@Html.HiddenFor(cbox => cbox.Label)
您可能希望错过LabelFor
查看您的示例,但只要隐藏的那个在那里,我认为没问题。
然后可以为视图控制器的POST
版本提供输入参数类型List<EmployeeViewModel> employees
,其中包含雇员对象内的复选框值。
对于左侧的复选框,您可以创建一个带有普通JavaScript或jQuery事件的直接HTML版本,以便在选中/取消选中时检查同一行中的那些。这里详细介绍了这些内容 - check uncheck All checkboxes with another single checkbox use jquery