그리드가 그룹화되어 있습니다. 즉, 그리드에 그룹의 제품이 표시됩니다. 그래서 그 구조는 Group과 그 자식들을 가지고 있습니다. 같은 방식으로 나는 아래에 바인딩하는 다른 그룹과 하위 항목을 갖게 될 것입니다. 부모 클릭으로 전체 하위 목록을 선택하고 선택을 취소하고 싶습니다.jquery를 사용하여 동적 ID 및 클래스가있는 체크 박스를 선택하거나 선택 취소하십시오.
CSHTML
@{
if (Model.List.Count() > 0)
{
<table>
<tr>
<input type="checkbox" class="[email protected](obj.GroupId)" name="@obj.GroupId" onclick="checkUncheckAll(this.class)" />
<td>Name</td>
</tr>
@foreach (var obj in Model.subList)
{
<tr>
<td>
<input type="checkbox" class="[email protected](obj.GroupId)" name="@obj.GroupId" /></td>
</td>
<td>
@obj.Name
</td>
</tr>
</table>
}
}
<input type="button" value="Save" onclick="PickAllCheckedRows();" />
나는 아래처럼 시도했지만 성공하지 못했습니다. 또한 저장 버튼을 클릭하면 체크 된 모든 그룹과 그 하위 항목을 선택하려고합니다. 어떤 도움이라도 대단히 감사 할 것입니다.
<script type="text/javascript">
function checkUncheckAll(sender) {
alert(sender);
var chkElements = document.getElementsByClassName('chkItems');
for (var i = 0; i < chkElements.length; i++) {
chkElements[i].checked = sender.checked;
}
}
function PickAllCheckedRows() {
}
</script>
이 작업 중입니다. 부모 체크 박스를 클릭하면 해당 하위 항목이 검사되고 상위 항목을 선택 취소하면 하위 항목도 선택 취소됩니다. 그러나 각 하위 항목을 하나씩 확인하면 상위 확인란을 선택하지 않습니다. – Sweetie
@Sweetie : 그래, 개별 항목 체크 박스의 클릭 수를 처리하고 모두 선택되었는지 여부에 따라 "모두"체크 상자를 설정해야합니다. –