2015-03-16 5 views
0

Я использую плагин таблицы данных с таблицей в качестве источника данных. Мне нужно изменить значение столбца через javascript, когда пользователь вводит некоторые числа во входные данные (этот ввод также является частью таблицы, и мне нужно экспортировать эти значения). Он работает хорошо, но когда я хочу экспортировать таблицу, столбцы, измененные с помощью javascript, не отображаются в экспортированном файле.Как обновить данные данных данных datatable

Я думаю, проблема в том, что я не обновил плагин с данными. Это верно? Если да, то как обновить источник данных? Если нет, что может быть проблемой и как я могу ее решить?

Я пробовал метод refresh() (var dataTableObject = $(this).parents('table').dataTable(); dataTableObject.refresh();) и $(this).parents('table').dataTable(), но не работает.

Edit: Вот как я могу изменить значение ячейки:

$item.find('input.quantity-coefficient').each(function (i, d) { 
     $(d).off('change').on('change', function() { 
      var multiplier = $(this).val(); 
      //var dataTableObject = $(this).parents('table').dataTable(); 

      $($(this).data("row-price-info-class")).each(function (i, d) { 
       var priceContainer = $(d); 
       var price = parseFloat(priceContainer.data('price-value')); 

       var priceInfoRatioContainer = $(priceContainer.data("ratio-input-class")); 
       if (multiplier * price == 0) { 
        priceInfoRatioContainer.closest("td").addClass("no-euro"); 
        priceInfoRatioContainer.html(" "); 
       } else { 
        priceInfoRatioContainer.closest("td").removeClass("no-euro"); 
        priceInfoRatioContainer.html(localizeNumber(multiplier * price)); 
       } 

      }); 
      //TODO redrow the data 
      $(this).parents('table').dataTable().fnDraw();; 
     }); 
    }); 

ответ

0

Вы можете обновить DataTable с fnDraw(). В вашем примере:

$(this).parents('table').dataTable().fnDraw(); 
+0

Благодарим за ответ, но это не работает. По крайней мере, данные моего столбца не находятся в экспортированном файле :( –

+0

@ZsoltBalogh: Можете ли вы предоставить больше кода? – WojciechPolak

+0

Я добавил его в исходное сообщение –

0

Спасибо вам, ребята, но я думаю, что я нашел решение в этой должности: jquery DataTables - change value of a cell not just display value

Когда я попробовал в первый раз проблема была, что я начал ряд, насчитывающий от 1 и не от 0.

так что для тех, кто может иметь этот вопрос, я должен использовать что-то вроде этого:

(this).parents('table').dataTable().fnUpdate("new value", 0, 2) 

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

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