将jQuery DataTables重置为默认值

时间:2013-12-01 06:13:20

标签: jquery jquery-datatables

使用jQuery DataTables,我们需要将表的列宽,它们的可见性和当前分页数重置为默认值,然后重新加载它。如何清理其cookie,数据并重新加载?

4 个答案:

答案 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();
 }

享受。