【问题标题】:Confirmation Draw has completed确认抽奖已完成
【发布时间】:2019-02-11 16:39:18
【问题描述】:

我创建了一个自定义按钮,允许用户选择列以输出到 CSV,因此该按钮不会作为表初始化的一部分创建。我有一个弹出模式,其中包含从列标题创建的复选框以供选择。值得注意的是,我对每个列标题进行了正则表达式搜索。问题是我正在使用服务器端处理,因此唯一导出的行是可见的。作为一种解决方法,我将其设置为获取 page.info().recordsDisplay 并将页面的长度设置为该值并进行绘制。模式弹出并说它正在从服务器加载数据,一旦表格完全填充,模式的 HTML 将更改为用于导出的复选框。导出后,表格将恢复为默认长度。我需要做的是在行完全呈现时捕获,以便我可以进行 HTML 切换。现在我正在设置超时。如果现在应用搜索,数据可能需要一段时间才能填充,因为大约有 13k 行。最好的方法是什么?有没有更有效的方法?

    var tableHeaders = [];
    var table = $('#example').DataTable().columns().every( function () {
        tableHeaders.push( $(this.header()).text() );
    });
    var pageLength = table.page.info().length;
    table.context['0']._iDisplayLength = table.page.info().recordsDisplay;
    table.draw();

【问题讨论】:

    标签: datatables datatables-1.10


    【解决方案1】:

    服务器端处理参数start/length 可能存在问题,该参数定义每次绘制时从服务器请求的数据部分。

    如果您的源数据有大量行,则很可能它们不会一次全部发送以利用服务器端处理。因此,您可以尝试操纵这些参数。

    或者,您可以尝试使用每次重绘时触发的draw 事件。

    【讨论】:

    • 过滤不是问题,因为服务器端处理,我必须加载表中的所有行才能导出所有数据。可能只需要查看某种直接的数据库连接。将比尝试将数据加载到表中更快。没有通过API导出所有数据并应用搜索的功能吗?
    • 编辑了我的答案,错过了关于服务器端处理的关键点。
    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 2016-05-29
    • 1970-01-01
    • 2012-06-14
    • 2012-01-20
    • 2016-09-09
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多