如何刷新数据表列数据

时间:2015-03-16 09:24:02

标签: javascript jquery datatable export

我使用数据表插件作为数据源。当用户在输入中键入一些数字时,我必须通过javascript更改一些列值(此输入也是表的一部分,我必须将此值导出到)。它运行良好,但是当我想导出表时,使用javascript更改的列不会显示在导出的文件中。

我认为问题是我没有刷新数据表插件。它是否正确?如果是,我该如何刷新数据源?如果没有可能是什么问题,我该如何解决?

我尝试了refresh()方法(var dataTableObject = $(this).parents('table').dataTable(); dataTableObject.refresh();)和$(this).parents('table').dataTable(),但无效。

编辑:以下是如何更改单元格值:

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

2 个答案:

答案 0 :(得分:0)

您可以使用fnDraw()刷新dataTable。在您的示例中:

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

答案 1 :(得分:0)

谢谢你们,但我想我在这篇文章中找到了解决方案:jquery DataTables - change value of a cell not just display value

当我第一次尝试时,问题是我从1开始编号而不是从0开始。

因此,对于可能遇到此问题的其他人,我必须使用以下内容:

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

更新单元格值。实际上这不是我问的,因为这并没有刷新所有表格,但现在这对我来说是一个解决方案。