2016-01-12 1 views
0

У меня есть таблица, которая населяет от вызова JSON ниже, для каждого вызова я не могу заменить предыдущие результаты и интересно, почему (с помощью нокаута JS для связывания и DataTables на ReportTable)Как заменить экземпляр массива в нокаут при использовании datatables?

JS:

$.post("GetReport", { "Filter": ko.toJSON(Filter) }, function (data) { 

      self.ReportTable([]); 

      for (var i = 0; i < data.length; i++) { 
        self.ReportTable.push(data[i]); 
      } 

       $('#ReportsTable').DataTable(data); 
       }, 'JSON'); 

Это не имеет значения, если я использую self.ReportTable ([]); или self.ReportTable.rmoveAll(); результирующий набор возвращается, но сбой данных datatables.

ответ

0

Просто понял это необходимо, чтобы добавить этот код повторно инициализировать таблицы данных правильно

$.post("GetReport", { "ReportFilter": ko.toJSON(reportFilter) }, function (data) { 
      $('#ReportsTable').DataTable().clear(); 
      $('#ReportsTable').DataTable().destroy(); 

      self.ReportTable.removeAll(); 
      for (var i = 0; i < data.length; i++) { 
        self.ReportTable.push(data[i]); 
      } 
      $("#ReportsResult").show(); 

      $('#ReportsTable').DataTable(data); 
      }, 'JSON'); 
     } 
+0

Вы должны действительно иметь пользовательские связывания обработчика для DataTable. –

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