[javascript] DataTables에서 행의 체크박스를 전체 선택 및 선택 해제하는 방법은 무엇인가요?
// DataTables 생성 및 초기화
var table = $('#myTable').DataTable();
// 전체 선택 체크박스 이벤트 핸들러 등록
$('#selectAll').on('change', function() {
var isChecked = $(this).is(':checked');
// 테이블의 모든 체크박스 상태 변경
table.rows().every(function() {
this.data().isSelected = isChecked;
});
// 체크박스 상태에 따른 행의 스타일 변경
table.rows().nodes().to$().each(function() {
if (isChecked) {
$(this).addClass('selected');
} else {
$(this).removeClass('selected');
}
});
});
// 개별 선택 체크박스 이벤트 핸들러 등록
$('#myTable').on('change', 'input[type="checkbox"]', function() {
var rowData = table.row($(this).closest('tr')).data();
rowData.isSelected = $(this).is(':checked');
// 체크박스 상태에 따른 행의 스타일 변경
if (rowData.isSelected) {
$(this).closest('tr').addClass('selected');
} else {
$(this).closest('tr').removeClass('selected');
}
});
위의 코드는 DataTables를 사용하여 테이블을 생성하고, 체크박스의 전체 선택과 개별 선택을 처리하는 방법을 보여줍니다. #myTable
은 DataTables를 적용할 테이블의 ID이고, #selectAll
은 전체 선택 체크박스의 ID입니다.
전체 선택 체크박스의 이벤트 핸들러에서는 체크박스의 변경 여부를 확인하고, 테이블의 모든 체크박스 상태를 변경합니다. 또한, 체크박스 상태에 따라 각 행의 스타일도 변경됩니다.
개별 선택 체크박스의 이벤트 핸들러에서는 해당 체크박스가 속한 행의 데이터를 가져와 상태를 변경하고, 행의 스타일도 변경합니다.
이를 통해 DataTables에서 행의 체크박스를 전체 선택 및 선택 해제할 수 있습니다.
참고 자료: