DataTables.net: маленькие трюки
Небольшой сборник нужных трюков
- Выделение цветом строки, по признаку
1 2 3 4 5 |
"createdRow": function( row, data, dataIndex ) { if (data.deleted == true ) { $(row).addClass('deleted'); } }, |
2. Вынос кнопки «Поиск» в свой контейнер
1 2 3 4 5 6 7 8 9 |
<label for="TableSearch" class="col-form-label me-2">Поиск</label> <div class="me-3"> <input type="text" id="TableSearch" class="form-control"> </div> ... oTable = $('#ezs_grid').DataTable(); $('#TableSearch').keyup(function(){ oTable.search($(this).val()).draw() ; }); |
3. Вынос кнопки «строк на странице» в свой контейнер
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<label class="me-3">Показать <select onchange="EzsGridList()" name="lengthtable" id="lengthtable" class="dataTable-selector"> <option selected="" value="10">10</option> <option value="20">20</option> <option value="30">30</option> <option value="40">40</option> </select> строк </label> ... ezs_table=$('#ezs_grid').DataTable( { dom: 'rtipB', destroy: true, altEditor: true, "pageLength": lengthtable.value, "pagingType": "full_numbers", buttons: [ |
4. Вынос кнопок экспорта в свой контейнер
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var buttons = new $.fn.dataTable.Buttons(table, { buttons: [ { text:"Excel",extend: 'excel', className: 'excel_export_style', init: function(api, node, config) { $(node).removeClass('btn btn-secondary') } }, { text:"Print",extend: 'print', className: 'print_export_style', init: function(api, node, config) { $(node).removeClass('btn btn-secondary') } } ] }).container().appendTo($('#export_buttons')); |
5. Отслеживание клика на строке таблицы
1 2 3 4 5 6 7 |
$('#clientsgrid').on('dblclick', 'tbody td', function () { tr = $(this).closest('tr'); row = table.row( tr ); data=row.data(); user_id=data.id; console.log(user_id); }); |
6. Перегрузка данных таблицы
1 |
table.ajax.reload(); |
7. Рендер своих данных для столбца
1 2 3 4 5 6 7 8 |
"columns": [ { "data": null, render: function (data, type, row, meta) { console.log(row); return '<span onclick="EzsEdit('+row.id+')">E</span><span id="ezs_service_'+row.id+'" onclick="DeleteEzs('+row.id+')">D</span>'; }, disabled: true }, |
8. Перебор всех загруженных данных таблицы
1 2 3 4 5 6 |
params_ezs_table.rows().data().each(function(entry) { //console.log(entry) if (entry.id==id){ param_ezs_value.value=entry.value; }; }); |
9. Получение id выделенной строки
1 2 3 4 5 6 |
rows=segment_table.rows('.selected').data(); if (rows.length>0){ ShowDialogAttachAgreement(rows[0].id); } else { ToastMessage("error","Внимание!","Выберите сегмент для присвоения договора"); }; |