使用更新的数据重绘数据表

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的代码,肯定是加载的,但也没有效果。

以上是关于使用更新的数据重绘数据表的主要内容,如果未能解决你的问题,请参考以下文章

更新数据异步后重绘 UITableView

.data() 处的 D3 新数据使 svg 重绘而不是更新节点位置

ObservedObject 未触发视图重绘

React ChartJS 防止新数据在重绘后被添加到状态中?

操作后重绘数据表

DiffUtil 重绘 ListAdapter Kotlin 中的所有项目