I'm using DataTables 1.10 in a Rails 4.2 project. I have the following in a js asset file:
var table = $('#ticket_details').DataTable({
stateSave: true,
deferRender: true,
ajax: $('#ticket_details').data('source'),
"columns": [
{ "data": "reference_number" },
{ "data": "location" },
{ "data": "title" },
{ "data": "ticket_category", className: "hidden-xs" },
{ "data": "opened_date" },
{ "data": "last_update", className: "hidden-sm hidden-xs" },
{ "data": "time", className: "hidden-xs", "orderData": 7 },
{ "data": "decimal_time", "searchable": false, className: "hidden-lg hidden-md hidden-sm hidden-xs hidden"},
{ "data": "open_or_closed", className: "hidden-lg hidden-md hidden-sm hidden-xs hidden"},
{ "data": "assigned_to", className: "hidden-md hidden-sm hidden-xs" },
{ "data": "icons", className: "hidden-sm hidden-xs" }]} );
setInterval( function () {
table.ajax.reload( null, false ); }, 60000 );
I'd like to have the table searched on my hidden column which says whether a ticket is Open or Closed. I've two buttons with some JS behind them to switch between open and closed, but I'd like it to default to open tickets
$('#ticket_details').dataTable( {
"initComplete": function(settings, json) {
table.columns(8).search("Open").draw();
}
} );
$('#open_toggle').on('click', function () {
table.columns(8).search("Open").draw();
});
$('#closed_toggle').on('click', function () {
table.columns(8).search("Closed").draw();
});
However when you load the page, the table displays everything. Surely if I used drawCallback() and then redrew the table it would just create an infinite loop?
You can do a initial search with search
option link
Some like:
var table = $('#ticket_details').DataTable({
"search": {
"search": "Fred"
},
stateSave: true,
deferRender: true,
ajax: $('#ticket_details').data('source'),
"columns": [
{ "data": "reference_number" },
{ "data": "location" },
{ "data": "title" },
{ "data": "ticket_category", className: "hidden-xs" },
{ "data": "opened_date" },
{ "data": "last_update", className: "hidden-sm hidden-xs" },
{ "data": "time", className: "hidden-xs", "orderData": 7 },
{ "data": "decimal_time", "searchable": false, className: "hidden-lg hidden-md hidden-sm hidden-xs hidden"},
{ "data": "open_or_closed", className: "hidden-lg hidden-md hidden-sm hidden-xs hidden"},
{ "data": "assigned_to", className: "hidden-md hidden-sm hidden-xs" },
{ "data": "icons", className: "hidden-sm hidden-xs" }
]
});