使用更新的数据重绘数据表
Posted
技术标签:
【中文标题】使用更新的数据重绘数据表【英文标题】:datatable redraw with updated data 【发布时间】:2017-01-12 15:56:46 【问题描述】:您好,我正在通过以下方式实例化我的数据表:
var dataTableOption = "pageLength" : 5,
"pagingType": "simple",
"info": false ,
"searching": false,
"select" :
style: 'single'
,
"lengthChange": false,
"columnDefs": [
"targets": [ 0 ],
"visible": false,
"searchable": false
],
data : this.workdata,
columns : [ data: 'id' ,
data: 'itemno' ,
data: 'artnr' ,
data: 'quan' ,
]
;
this.dt = $('#dt-overview').DataTable(dataTableOption );
当我的工作数据由于应用程序逻辑中的事件而发生变化时,我希望更新数据表的数据并且表应该显示新数据。在我见过的调试器中,行数据也没有更新。怎么实现?
提前致谢!
【问题讨论】:
【参考方案1】:我和你的问题完全一样。
我发现 this 正在工作,但我也遇到了一些与应用程序逻辑相关的问题,导致有义务重新初始化(销毁然后初始化)数据表。
【讨论】:
工作代码是公认的,即使两者都在工作。当第二个使用旧功能时,接受的第一个使用数据表 1.10。 这对我不起作用。我使用选择扩展名。当我清除并重绘时,我失去了选择。如果我用 draw('page') 重绘,我会在表中得到以下错误文本:找不到匹配的记录 您使用的是 stateSave 参数吗? datatables.net/examples/basic_init/state_save.html 我在数据表中设置了“stateSave”:true,但是每次我操作工作数据并清除和重绘表格时,我的页面和选择状态都会丢失。 好的,所以您可能需要使用会话存储。看看这个:datatables.net/forums/discussion/22482/…【参考方案2】:您可以使用 fnStandingRedraw 刷新数据表中的服务器端数据,它的工作原理就像一个魅力(不幸的是,它已被弃用)。您可以使用https://datatables.net/plug-ins/api/fnStandingRedraw 插件并使用如下:
// Create variable
var ajaxSourceDataTable;
// Define datatable for variable
ajaxSourceDataTable = $('.datatable-ajax-source table').dataTable()
// Use this code to redraw/refresh datatable without hard refresh to page
ajaxSourceDataTable.fnStandingRedraw();
【讨论】:
不幸的是它不起作用。我已经包含了cdn.datatables.net/plug-ins/1.10.12/api/fnStandingRedraw.js,但是当我调用 datatable.fnStandingRedraw();我收到以下错误:datatable.fnStandingRedraw 不是函数 您是否正确添加了java脚本文件?我认为您必须根据数据表的变量名称使用 dataTableOption.fnStandingRedraw 而不是 datatable.fnStandingRedraw。 是的,我已经正确添加了它,并且通过加载它没有得到 404。我已将 "fnStandingRedraw" : true 添加到我的数据表选项中,但它没有任何效果。 "datatable.fnStandingRedraw is not a function" 错误绝对是您需要修复的问题,因为我们不知道您的代码,并且根据我的意见,它表示相应的 JS 未正确集成。阅读datatables.net/plug-ins/api/fnStandingRedraw 并搜索它。还有***.com/questions/19551638/… 嗯,我在Datatables的脚本文件之后直接包含了JS文件。如果我在 chrome 中显示我的网页的源代码。包含显示为链接。当我点击它时,源代码被加载。我还在dataTables.js的末尾粘贴了cdn.datatables.net/plug-ins/1.10.12/api/fnStandingRedraw.js的代码,肯定是加载的,但也没有效果。以上是关于使用更新的数据重绘数据表的主要内容,如果未能解决你的问题,请参考以下文章
.data() 处的 D3 新数据使 svg 重绘而不是更新节点位置