如何强制数据表重新渲染或重新加载静态数据?

新手上路,请多包涵

我有一个使用 HTML 文件中的静态数据的数据表。

使用“columnDefs data”函数或“columnDefs render”函数,我可以执行一些输出调整——根据它们的内容和它们在当前显示页面上的位置(不改变数据源)消隐一些 TD .

但是,当用户更改显示的行数时,我需要重置并重做我对数据的调整,因为不同的单元格现在需要消隐,而之前消隐的条目可能需要再次显示。

所以,我想做的是在“length.dt”事件(刚刚更改的显示行数)中, 调用 导致数据表重新呈现整个表或重新加载整个数据(这将从而调用我的 columnDefs 渲染或 columnDefs 数据函数)

这可能吗?还是我的方法有缺陷,我需要找到另一种方法?

原文由 Dave 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 626
2 个回答

使用 rows().invalidate() 使所有行的数据无效, draw() 重绘表格。

Please note that 'data' in rows().invalidate('data') is required if you use Javascript data structure (with data or columns.render options).

 $('#your_table').DataTable()
   .rows().invalidate('data')
   .draw(false);

原文由 Gyrocode.com 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在 length.dt 事件上重绘整个 DataTable。

 $('#your_table').on('length.dt', function (){
     setTimeout(function() {
         //draw('page') redraws your DataTable and preserves the page where it was
         $('#your_table').DataTable().draw('page');
     }, 100);
});

编辑

在这里您可以看到更多信息和其他传递给 draw 方法的参数: https://datatables.net/reference/api/draw%28%29

原文由 Khalav 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题