Просто добавьте этот параметр к вашей декларации:
"bDestroy" : true,
Тогда, когда вы хотите «воссоздать» t в связи с этим не будет происходить ошибка
P.S. Вы можете создать функцию для получения требуемых параметров, а затем повторно инициализировать таблицу с различными параметрами во время выполнения.
Например, я использую этот в моих программах, если это поможет вы можете адаптировать его к вашим потребностям
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
}
Иван.
Покажите нам свой код, но вы можете использовать 'если (OTABLE! = NULL) OTABLE .fnDestroy(); ' – sdespont
Добавил мой код в вопрос. Можете ли вы любезно объяснить, как уничтожить? – LittleLebowski
Зачем вам нужно воссоздать данные? Вы можете обновить существующий: 'oTable.fnDraw (false);' – sdespont