2013-12-01 2 views
-6

Используя jQuery DataTables, нам нужно сбросить ширину столбцов таблицы, их видимость и текущий номер разбивки на страницы по умолчанию и перезагрузить ее снова. Как можно очистить свой файл cookie, данные и перезагрузить его?Сброс данных jQuery DataTables по умолчанию

+0

Не могли бы вы уточнить эти методы? – Babak

+0

Не могли бы вы уточнить свой вопрос? – ldrumm

ответ

0

Я не знаком с JQuery DataTables, но, глядя на документацию, вы можете попробовать несколько вещей:

Уничтожить таблицу и восстановить его:

TableVariable.fnDestroy(); 
TableVariable.fnDraw(); 

Попробуйте функцию fnDraw без разрушения это, он должен перерисовывать таблицу:

TableVariable.fnDraw(); 

в этих примерах TableVariable переменная вы использовали для инициализации DataTable, например, так:

var TableVariable = $(".table").dataTable(); 

Гудлак

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; 

} 
+0

Спасибо за ваш ответ, но 'fnDestroy()' не работал для меня. Я попытался вручную удалить ширину заголовка и сбросить их видимость, а затем снова вызвать метод сохранения состояния. – Babak

+0

фактически без вашего кода я не могу дать вам точное решение. так что если бы это помогло, и вы решили, тогда все в порядке. – dev

0

Обычно он должен работать с

var oTable = $('#example').dataTable(); 
oTable.fnDraw(); 

Но, так как вы говорите это не то вы должны просто рассмотреть вопрос об исключении таблицы, а затем попробуйте вызвать тот же самый метод, использованный для создания таблицы в первую очередь. Таким образом, таблица будет воссоздана без каких-либо предыдущих настроек.

Поскольку все происходит на стороне клиента, вы можете не заметить большой разницы.

+0

Мы сохраняем размер столбца и видимость в базе данных. Я не мог найти никакой помощи, но люди, которые упоминают 'fnDestroy()', очень помогают мне добавить собственный метод. Использование 'fnDestroy()' не помогло мне, и оно разрушает пользовательский интерфейс, но не очищает файл cookie и не восстанавливает значение по умолчанию. – Babak

+0

Я не уверен, есть ли ошибка в 'fnDestroy()' или мы используем этот компонент не соответствующим образом. – Babak

+0

Проверьте также параметры инициализации и параметров по умолчанию. Вы можете настроить их и попробовать. –

Смежные вопросы