У меня есть таблица из> 400 пунктов, из которых мои пользователи могут выбирать. Существует несколько наборов из примерно 200 предметов, которые довольно часто выбираются вместе в зависимости от пользователя. Поэтому я хочу сделать несколько кнопок, которые автоматически выбирают большую часть этих элементов для пользователя.
В этом случае я хочу, чтобы кнопка выбора библиотеки по умолчанию инициировала выбор строк с ID 4, 7 и 8.
Я добавил скрытую строку идентификатора, но я не уверен, как вызвать функцию выбора для списка идентификаторов.
Скрипка: https://jsfiddle.net/crashvector/b9r0Lpvg/2/
Код запроса:
$(document).ready( function () {
var srcData = [
{
"ID": "1",
"Name": "01_p11017",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "2",
"Name": "02_p21017",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "3",
"Name": "03_p31017",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "4",
"Name": "04_p41017",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "5",
"Name": "05_p11117",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "6",
"Name": "06_p21117",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "7",
"Name": "07_p31117",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
},
{
"ID": "8",
"Name": "08_p41117",
"Region": "GoM",
"Class": "unknown",
"Category": "unknown",
"QC_flag": "0",
"QC_comment": "\r"
}];
var table = $('#samples').DataTable( {
"processing": true,
"serverSide": false,
"pageLength": -1,
"lengthMenu": [[100, 250, 500, -1], [100, 250, 500, "All"]],
data: srcData,
columns: [
{
data: '',
defaultContent: '0',
visible: false
},
{
data: '',
defaultContent: '',
orderable: false,
className: 'select-checkbox',
targets: 1,
orderData: [0]
},
{
title: 'ID',
'className': 'dt-left',
'visible': false,
data: 'ID'
},
{
title: 'Name',
'className': 'dt-left',
data: 'Name'
},
{
title: 'Region/Program',
'className': 'dt-left',
data: 'Region'
},
{
title: 'Class',
'className': 'dt-left',
data: 'Class'
},
{
title: 'Category',
'className': 'dt-left',
data: 'Category'
},
{
title: 'QC Concerns',
'className': 'dt-left',
data: 'QC_comment'
}
],
select: {
style: 'multi',
},
order: ([[ 4, 'asc' ], [ 5, 'asc' ], [ 3, 'asc' ]]),
orderFixed: [0, 'desc'],
dom: 'Bfrtip',
buttons: [
{
extend: 'csv',
fieldBoundary: '',
text: '<span class="fa fa-file-excel-o"></span> Download (ALL) or (SELECTED)',
exportOptions: {
columns: [ 5, 2 ],
modifier: {
search: 'applied',
order: 'applied'
}
}
},
{
text: 'Select Default Library 1',
action: function (e, dt, node, conf) {
alert('This button will automatically check all rows that match predefined list 1 using the hidden ID column. (IE ID 4, 7, 8)');
}
}
]
} );
table.on( 'select', function ( e, dt, type, indexes ) {
if ( type === 'row' ) {
var row = table.row( dt );
table.cell({ row: row.index(), column: 0 } ).data( '1' );
table.draw();
}
});
table.on( 'deselect', function ( e, dt, type, indexes ) {
if ( type === 'row' ) {
var row = table.row( dt );
table.cell({ row: row.index(), column: 0 } ).data( '0' );
table.draw();
}
});
} );