How to destroy a datatable?

后端 未结 8 1627
萌比男神i
萌比男神i 2021-02-01 05:19

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

相关标签:
8条回答
  • 2021-02-01 05:52

    For the google searchers

    Very hardly I managed to destroy the Datatable, Empty it's all previous data before loading new data and re-initializing Datatable by doing like this,

    if ($.fn.DataTable.isDataTable("#myTbl")) {
          ("#myTbl").DataTable().destroy();
    }
    $('#myTbl tbody > tr').remove();
    
    ...
    
    // Load table with new data and re-initialize Datatable
    
    0 讨论(0)
  • 2021-02-01 05:55
    $('#feedback-datatable').dataTable().fnDestroy();
    

    this should destroy dataTable, then you will have to reinitialize dataTable.

    0 讨论(0)
  • 2021-02-01 06:03

    I know this is an old question, but since I bumped into a similar issue and resolved it.

    The following should do the trick (the comments are coming from the DataTable API doc).

    // Quickly and simply clear a table
    $('#feedback-datatable').dataTable().fnClearTable();
    
    // Restore the table to it's original state in the DOM by removing all of DataTables enhancements, alterations to the DOM structure of the table and event listeners
    $('#feedback-datatable').dataTable().fnDestroy();
    
    0 讨论(0)
  • 2021-02-01 06:04

    From DataTable

    var table = $('#myTable').DataTable();
    $('#tableDestroy').on( 'click', function () {
    table.destroy();
    });
    

    Reload a full table description from the server, including columns:

    var table = $('#myTable').DataTable();
    $('#submit').on( 'click', function () {
        $.getJSON( 'newTable', null, function ( json ) {
            table.destroy();
            $('#myTable').empty(); // empty in case the columns change
    
            table = $('#myTable').DataTable( {
                columns: json.columns,
                data:    json.rows
            } );
        } );
    });
    

    Hope it will help

    0 讨论(0)
  • 2021-02-01 06:06

    Just add this parameter to your declaration:

    "bDestroy" : true,

    Then whenever you want to "recreate" the table it won't drop an error

    P.S. You can create a function to get the required parameters and then reinitialize the table with different options at runtime.

    For example I use this one in my programs, if it helps you can adapt it to your needs

     initDataTable($('#tbl1'), 2, 'asc', false, false, 25, false, false, false, 'landscape', rptHdr);  /* Initialize Table */
    /*---------------------- Datatable initialization  --------------------------- */
    /*
     * @$table           Table id which be initialized
     * @sortCol          Column number that will be initially sortered 
     * @sorOrder         Ascendant (asc) or Descendant (desc)
     * @enFilter         Boolean value to enable or not the filter option
     * @enPaginate       Boolean value to enable or not the filter option
     * @dplyLength       Number of records contained per page when pagination is enabled
     * @enInfo           Boolean value to show or not the records info
     * @autoWidth        Boolean value to enable or not table autowidth
     * @enTblTools       Boolean value to enable or not the table tools addin
     * @pdfOrientation   Page orientation (landscape, portrait) for pdf documents (required enTblTools == enabled)
     * @fileName         Output file naming (required enTblTools == enabled)
    
      /*------------------------------------------------------------------------------*/  
    function initDataTable($table, sortCol, sortOrder, enFilter, enPaginate, dplyLength, enInfo, autoWidth, enTblTools, pdfOrientation, fileName) {
        
        var dom = (enTblTools) ? 'T' : '';
    
        var oTable = $table.dataTable({
            "order": [
                [sortCol, sortOrder]
            ],
            "bDestroy": true,
            "bProcessing": true,
            "dom": dom,
            "bFilter": enFilter,
            "bSort": true,
            "bSortClasses": true,
            "bPaginate": enPaginate,
            "sPaginationType": "full_numbers",
            "iDisplayLength": dplyLength,
            "bInfo": enInfo,
            "bAutoWidth": autoWidth,
            "tableTools": {
                "aButtons": [{
                        "sExtends": "copy",
                        "sButtonText": "Copy",
                        "bHeader": true,
                        "bFooter": true,
                        "fnComplete": function(nButton, oConfig, oFlash, sFlash) {
                            $().shownotify('showNotify', {
                                text: 'Table copied to clipboard (no formatting)',
                                sticky: false,
                                position: 'middle-center',
                                type: 'success',
                                closeText: ''
                            });
                        }
                    }, {
                        "sExtends": "csv",
                        "sButtonText": "Excel (CSV)",
                        "sToolTip": "Save as CSV file (no formatting)",
                        "bHeader": true,
                        "bFooter": true,
                        "sTitle": fileName,
                        "sFileName": fileName + ".csv",
                        "fnComplete": function(nButton, oConfig, oFlash, sFlash) {
                            $().shownotify('showNotify', {
                                text: 'CSV file saved in selected location.',
                                sticky: false,
                                position: 'middle-center',
                                type: 'success',
                                closeText: ''
                            });
                        }
                    }, {
                        "sExtends": "pdf",
                        "sPdfOrientation": pdfOrientation,
                        "bFooter": true,
                        "sTitle": fileName,
                        "sFileName": fileName + ".pdf",
                        "fnComplete": function(nButton, oConfig, oFlash, sFlash) {
                            $().shownotify('showNotify', {
                                text: 'PDF file saved in selected location.',
                                sticky: false,
                                position: 'middle-center',
                                type: 'success',
                                closeText: ''
                            });
                        }
                    },
                    {
                       "sExtends": "Other",
                       "bShowAll": true,
                       "sMessage": fileName,
                       "sInfo": "Please press escape when done"
                    }
                ]
            }
            /*"fnDrawCallback": function( oSettings ) {alert( 'DataTables has redrawn the table' );}*/
        });
        /* If is IE then avoid setting the sticky headers */
        if (!navigator.userAgent.match(/msie/i) && enPaginate == false) {
            new $.fn.dataTable.FixedHeader(oTable);
        }
    
        return oTable
    }
    

    Ivan.

    0 讨论(0)
  • 2021-02-01 06:09

    On DataTables 1.10 and above you can use "destroy": true

    Read more details here

    0 讨论(0)
提交回复
热议问题