2013-06-24 6 views
1

У меня есть данные для отображения значений с сервера при нажатии кнопки. Это своего рода функция поиска. если изменить значение текстового поля поиска и нажать второй раз, он не отражает изменений.JQuery datatables - проблема с перезагрузкой

Второе время, не отображающее правильные значения.

jQuery("#dialog-form").dialog ({ 
autoOpen: false, 
height: 500, 
width: 750, 
modal: true, 
buttons : { 
"Search" : function() { 
jQuery.ajax({ 
url : 'action="part"/>', 
data : {"product" : $("#productsTextArea").val()}, 
dataType : 'json', 
success : function(data){ 
var newarray=[]; 
while(data.length > 0) { 
newarray.push(data.splice(0,2)); 

} 

oTable = $("#products").dataTable({ 
     "aaData" : newarray, 
     "bProcessing" : true, 
     "sPaginationType" : "full_numbers", 
     "bDeferRender": true, 
     "bJQueryUI" : true, 
     "bRetrieve" : true, 
     "bPaginate" : true, 
     "bSort" : true, 
     "aaSorting" : [[ 4, "desc" ]], 
     "iDisplayLength" : 15, 
     "aoColumnDefs": [ 
      {"fnRender": function(o, val){ 

        return o.aData[0]; 
       }, 
       "sClass":"prod", "aTargets": [ 0 ] }, 
      {"fnRender": function(o, val){ 

        return o.aData[1]; 
       }, 
       "sClass":"Description", "aTargets": [ 1 ] } 
       ] 
     }); 
+0

Трудно знать наверняка из вашего описания. С помощью Datatables вы можете либо загрузить страницу со всеми данными таблицы, а затем использовать окно поиска данных для фильтрации этих строк; или вы можете использовать источник Ajax, который будет опросить ваш сервер после ввода каждого символа в поле поиска. –

+0

Обновлен код ... Это поможет понять мой вопрос. –

+0

Я не вижу, где вы повторно инициализируете datatable. Вы можете успешно вернуть данные через ajax, но вы не обновляете таблицу. – isherwood

ответ

0

Я думаю, вам нужно повторно инициализировать DataTables на каждом АЯКС вызова:

success : function(data){ 
    oTable(); 
    var newarray=[]; 
    while(data.length > 0) { 
    newarray.push(data.splice(0,2)); 
} 
+0

Есть ли функции для реферирования данных? Поэтому, прежде чем нажимать на поиск, мы можем ссылаться на таблицу. –

+0

Взгляните на API: http://www.datatables.net/api Возможно, вам нужно будет использовать fnDestroy() перед повторной инициализацией. – isherwood