Я хочу установить несколько флажков в сетке с помощью shift + click
.Я использую метод выбора и отмены jquery datatable , но это не подходит для работы при отмене выбора строк.
Например, если я выберу 4 строки, я хочу отменить выбор всех строк.поэтому я нажимаю на первую строку, тогда все строки не будут выбраны.но проблема в том, если я хочу снова выбрать сначала, поэтому мне нужно дважды нажать на флажок, что странно.
Когда я отлаживал код, я обнаружил, что когда вы отмените выбор первого, он выберет все, чтобы отменить выбор всех вместо первого.Вот почему нам нужно дважды щелкнуть флажок.и еще одна вещь из этого кода, как получить индекс столбца флажка.
Вот мой код с некоторыми усилиями
var table1 = tableList;
table1
.on('select', function (e, dt, type, indexes) {
if (dt != undefined && type != undefined && indexes != undefined) {
var rowData = table1.rows(indexes).data().toArray();
var colIdx = $(this).closest('th').index();
$.each(rowData, function (index, value) {
$('input[type=checkbox][name=chkboxtest]').each(function () {
var id = value.Id;
if ($(this).val() == id) {
//console.log($(this).val());
if ($(this).is(':checked') == false) {
$(this).prop('checked', true);
}
}
});
});
}
})
.on('deselect', function (e, dt, type, indexes) {
var rowData = table1.rows(indexes).data().toArray();
if (rowData == undefined || rowData.length == 0) {
return;
}
$.each(rowData, function (index, value) {
$('input[type=checkbox][name=chkboxtest]').each(function () {
var id = value.Id;
if ($(this).val() == id) {
if ($(this).is(':checked')) {
console.log($(this).val());
$(this).prop('checked', false);
}
else {
$(this).prop('checked', false);
}
}
});
});
});
}