Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to destroy a datatable?

Tags:

I'm using datatables and using bootstrap-daterangepicker to select a range for which data will be shown in Datatables.

It is working fine.

The problem is when I select a new range in daterangepicker, it provides me with a callback function where I can do my stuff. In that callback function, I'm calling Datatables again. But since the table is already being created, how can I destroy the previous table and show a new one in it's place?

Kindly help. I'm stuck. :(

EDIT: I've the following code:

$(element).daterangepicker({options}, function (startDate, endDate) { //This is the callback function that will get called each time $('#feedback-datatable').dataTable({                         "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",                         "sPaginationType": "bootstrap",                         "oLanguage": {                             "sLengthMenu": "_MENU_ records per page",                             "oPaginate": {                                 "sPrevious": "Prev",                                 "sNext": "Next"                             }                         },                         "aoColumnDefs": [{                             'bSortable': false,                             'aTargets': [2,4]                         }],                         "bAutoWidth": false,                         "aoColumns": [                                       {"sWidth": "20%"},                                       {"sWidth": "15%"},                                       {"sWidth": "45%"},                                       {"sWidth": "15%"},                                       {"sWidth": "5%"}                                       ]                     }); } 
like image 810
LittleLebowski Avatar asked Mar 02 '13 09:03

LittleLebowski


People also ask

How to remove DataTable from table?

10.8, DataTables will use the jQuery . remove() method to remove the table from the page - this results in any events that are bound to the table elements being automatically removed by jQuery. If set to false custom events are not removed from the table - only the events that DataTables itself attached to the table.

How to destroy and reinitialize the DataTable?

Remove destroy:true option and instead of destroying and recreating the table use clear() to clear the table content, rows. add() to add the table data and then draw() to re-draw the table. In this case you would need to initialize DataTables once on page initialization.

How do you check DataTable is initialized or not?

isDataTable() could be used, but this only works for table selectors, not for variables containing an initialized DataTable. This function is returning false for such variables: var table = $("#table"). DataTable(); // Valid initialized DataTable console.


1 Answers

To completely delete and remove the datatable object with its DOM elements you need to :

//Delete the datable object first if(oTable != null)oTable.fnDestroy(); //Remove all the DOM elements $('#feedback-datatable').empty(); 
like image 154
sdespont Avatar answered Oct 17 '22 19:10

sdespont