这个问题是在剑道网格的背景下进行的,但我相信它同样适用于传统的桌子。
网格在左侧有项目和与项目经历的步骤相关的列。部分功能是,如果选中了一个复选框,则该行中所有前面的复选框都将设置为选中,而不管它们的初始状态如何。
这(由于 Kendo 网格)假定在 JQuery 函数中处理,其中该函数检查特定复选框是否被选中,然后将相同的选中状态应用于对应于特定行的所有复选框在选中复选框之前发生的类。
我相信(根据我目前在 JQuery 方面的有限知识,以及剪切/粘贴各种类似的代码片段)设置前面的复选框需要类似于下面的代码:
$("#Step2").change(function(){
if ($('#Step2').is(':checked')) {
$(this).parents('tr').closest(".Step1:checkbox").prop("checked", true);
}
else
{
$(this).parents('tr').closest(".Step1:checkbox").prop("checked", false);
}
});
但是,这不会根据需要选择上一步的复选框。
如果有帮助,剑道网格的列如下:
columns: [
{ field: "Item" },
{ field: "Step1", title: "Step 1", attributes: {style: "text-align: center"}, template: '<input class="Step1" id="Step1" type="checkbox" #= Step1 ? "checked=checked" : "" # ></input>', headerTemplate: '<div style="text-align:center">Step 1<br/><input type="checkbox" id="step1Toggle"></input></div>' },
{ field: "Step2", title: "Step 2", attributes: {style: "text-align: center"}, template: '<input class="Step2" id="Step2" type="checkbox" #= Step2 ? "checked=checked" : "" # ></input>', headerTemplate: '<div style="text-align:center">Step 2<br/><input type="checkbox" id="step2Toggle"></input></div>' },
{ field: "Step3", title: "Step 3", attributes: {style: "text-align: center"}, template: '<input class="Step3" id="Step3" type="checkbox" #= Step3 ? "checked=checked" : "" # ></input>', headerTemplate: '<div style="text-align:center">Step 3<br/><input type="checkbox" id="step3Toggle"></input></div>' },
{ field: "Step4", title: "Step 4", attributes: {style: "text-align: center"}, template: '<input class="Step4" id="Step4" type="checkbox" #= Step4 ? "checked=checked" : "" # ></input>', headerTemplate: '<div style="text-align:center">Step 4<br/><input type="checkbox" id="step4Toggle"></input></div>' },
{ field: "Step5", title: "Step 5", attributes: {style: "text-align: center"}, template: '<input class="Step5" id="Step5" type="checkbox" #= Step5 ? "checked=checked" : "" # ></input>', headerTemplate: '<div style="text-align:center">Step 5<br/><input type="checkbox" id="step5Toggle"></input></div>' }
]