Javascript 如何刷新datatable列数据
我使用带有表的数据表插件作为数据源。当用户在输入中键入一些数字时,我必须通过javascript更改一些列值(该输入也是表的一部分,我必须将这些值导出到)。它工作正常,但是当我想要导出表时,用javascript更改的列不会显示在导出的文件中 我认为问题在于我没有刷新datatable插件。这是正确的吗?如果是,如何刷新数据源?如果没有,会出现什么问题?我如何解决 我尝试了Javascript 如何刷新datatable列数据,javascript,jquery,datatable,export,Javascript,Jquery,Datatable,Export,我使用带有表的数据表插件作为数据源。当用户在输入中键入一些数字时,我必须通过javascript更改一些列值(该输入也是表的一部分,我必须将这些值导出到)。它工作正常,但是当我想要导出表时,用javascript更改的列不会显示在导出的文件中 我认为问题在于我没有刷新datatable插件。这是正确的吗?如果是,如何刷新数据源?如果没有,会出现什么问题?我如何解决 我尝试了refresh()方法(var-dataTableObject=$(this).parents('table').dataT
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();;
});
});
您可以使用
fnDraw()
刷新数据表。在您的示例中:
$(this).parents('table').dataTable().fnDraw();
谢谢大家,但我想我在这篇文章中找到了解决方案: 当我第一次尝试时,问题是行编号是从1开始的,而不是从0开始的 因此,对于其他可能有此问题的人,我必须使用以下内容:
(this).parents('table').dataTable().fnUpdate("new value", 0, 2)
更新单元格值。事实上,这不是我所要求的,因为这不是刷新所有表,但这是我现在的解决方案。谢谢您的回复,但这不起作用。至少我的列数据不在导出的文件中:(我将其添加到原始帖子中