Sorting
The orderable option only controls the end-user ability to sort the column. This does not interfere with the sorting of the column programmatically.
The default value for the order parameter, which controls the sorting of the table, [[0, 'asc']] . Use this option to set the initial sort order different from the first column.
For instance:
devicesTable = $('#devices').DataTable({ // disable sorting first column 'columnDefs': [{ 'orderable': false, 'targets': 0 /* 1st one, start by the right */ }], order: [[2, 'asc']], stateSave: false, language: { "url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/Russian.json" } });
Checkboxes
You need to initialize the checkboxes in the drawCallback handler and use delegated event handlers. Otherwise, only the checkboxes on the first page will work.
Please note that I just copied parts of your code related to the iCheck plug-in and cannot guarantee that it will work. An important part of the example below is the use of drawCallback and delegated event handlers.
devicesTable = $('#devices').DataTable({ // disable sorting first column 'columnDefs': [{ 'orderable': false, 'targets': 0 /* 1st one, start by the right */ }], order: [[2, 'asc']], stateSave: false, language: { "url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/Russian.json" }, drawCallback: function(settings){ var api = this.api(); //iCheck for checkbox and radio inputs $('input[type="checkbox"].minimal, input[type="radio"].minimal', api.table().node()).iCheck({ checkboxClass: 'icheckbox_minimal-blue', radioClass: 'iradio_minimal-blue' }); } }); var table_node = devicesTable.table().node(); $('thead', table_node).on('ifChecked ifUnchecked', 'input.check-all', function(event) { var checkboxes = $('tbody input.check-single', table_node); if (event.type == 'ifChecked') { checkboxes.iCheck('check'); } else { checkboxes.iCheck('uncheck'); } }); $('tbody', table_node).on('ifChanged', 'input.check-single', function(event) { var checkAll = $('thead input.check-all', table_node); var checkboxes = $('tbody input.check-single', table_node); if(checkboxes.filter(':checked').length == checkboxes.length) { checkAll.prop('checked', 'checked'); } else { checkAll.removeProp('checked'); checkAll.prop('checked', false); } checkAll.iCheck('update'); });