使用jQuery DataTables,我们需要将表的列宽,它们的可见性和当前分页数重置为默认值,然后重新加载它。如何清理其cookie,数据并重新加载?
答案 0 :(得分:1)
由于您没有提供任何代码,我可以根据您的要求定制代码。我想你是用ajax获取数据的。如果是这样,你可以使用它。
var resultexist=false; // Initialize status variable
var reportjqdt=null; // Data Table reference
function populateReportData (result) { // Result is an arry of data
var headers=result.arrh;
var data=result.arr;
var dataType=result.arrDT;
var $resultdiv = $("#repResult");
var hdrfdr="<tr>";
for(var i=0;i<headers.length;i++) {
hdrfdr+="<th>"+headers[i]+"</th>";
}
hdrfdr+="</tr>";
var tbldata="<tbody>";
for(var i=0;i<data.length;i++) {
if(i%headers.length==0 ){
tbldata+="<tr>";
}
tbldata+="<td class="+(i%(2*headers.length)==0?"odd":"even")+" >"+data[i]+"</td>";
if((i+1)%headers.length==0 ){
tbldata+="</tr>";
}
}
tbldata+="</tbody>";
var table="<table id='reportDataTBL' > <thead>"+ hdrfdr + "</thead>"+ tbldata + "<tfoot>"+hdrfdr+"</tfoot></table>";
if(resultexist){
reportjqdt.fnDestroy(); // Delete if datatable exists
}
$resultdiv.html(table);
reportjqdt = $('#reportDataTBL').dataTable({"bJQueryUI": true});
resultexist=true;
}
答案 1 :(得分:0)
我对jQuery DataTables并不熟悉,但查看文档可以尝试以下几点:
销毁表并重建它:
TableVariable.fnDestroy();
TableVariable.fnDraw();
尝试fnDraw函数而不破坏它,它应该重绘表:
TableVariable.fnDraw();
在这些示例中,TableVariable是您用于初始化DataTable的变量,如下所示:
var TableVariable = $(".table").dataTable();
古德勒克
答案 2 :(得分:0)
通常它应该与
一起使用var oTable = $('#example').dataTable();
oTable.fnDraw();
但是,既然你告诉它不是那么你应该只考虑删除表,然后尝试调用你用来创建表的相同方法。这样就可以在没有任何先前设置的情况下重新创建表格。
因为,一切都发生在客户端,你可能没有注意到太大的区别。
答案 3 :(得分:0)
//init dataTable
function loadDataTable()
{
table = $("#table").dataTable({ ... });
}
// Reset dataTable
function resetFilter()
{
// Clear table state
table.state.clear();
// Destroy table state
table.destroy();
// Reload dataTable without reload the page
loadDataTable();
}
享受。