首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在页面更改或任何其他事件后重新绘制/重新填充jquery datatable数据集

在页面更改或任何其他事件后重新绘制/重新填充jquery datatable数据集
EN

Stack Overflow用户
提问于 2017-06-04 22:04:49
回答 1查看 389关注 0票数 0

我的页面中有一个jquery datatable,我用下面这样的数据填充它:

代码语言:javascript
运行
复制
$(document).ready(function () {
    var datatable;
    $(document).on("click", ".myBtnClass", function () {
        if (datatable != null)
            datatable.destroy();
        datatable = $('#tableProducts').DataTable({
            "pageLength": 50,
            "processing": false,
            "serverSide": true,
            "filter": true,
            "bLengthChange": false,
            "bSort": false,
            "orderMulti": false,

            "ajax": {
                "url": "/Bulk/LoadData/",
                "type": "POST",
                "data": {
                    "username": $(".sellerInput").val(),
                    "drange": $(".select2").val()
                },
                "dataSrc": function (data) {
                    return data.data;
                }

            }
        });
    });
});

正如您在这里看到的,我正在用我的方法返回"LoadData“的数据填充数据表……

这里的问题在这一行中:

代码语言:javascript
运行
复制
if (datatable != null)
        datatable.destroy();

每次我为了用新数据重新创建表而销毁它时,我就失去了表的设计,在销毁/重新创建之后,它就会变形,看起来很难看……

是否有其他方法可以将数据重新加载到表中,而无需实际调用destroy()方法?

EN

回答 1

Stack Overflow用户

发布于 2017-06-10 04:52:35

您可以尝试两种不同的方法:

1.销毁/重新实例化表

在表的初始化中添加选项destroy:true,然后删除

代码语言:javascript
运行
复制
 if (datatable != null)
         datatable.destroy();

这将告诉datatables在现有实例上调用初始化函数时销毁并重新实例化该表。

但是,这仍然可能会搞乱表的设计。

2.使用ajax.reload()

另一种可能更可取的方法是使用ajax选项中提供的url重新加载数据:

代码语言:javascript
运行
复制
$('#tableProducts').DataTable().ajax.reload();

Here's有关ajax.reload()功能的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44354944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档