【问题标题】:Data Tables set selection on page load数据表在页面加载时设置选择
【发布时间】:2016-12-18 00:48:45
【问题描述】:

使用复选框进行选择。单击复选框时,该行被选中:

    select: {
        style: 'multi',
        selector: ':checkbox'
    }

我想将选定的行保存到数据库中,我使用选中的复选框的 ID 来执行此操作。当我加载选中复选框的页面时,我将选中的复选框类别设置为选中:

    $('input:checked').each(function() {
        var $row = $(this).closest('tr');
        $row.addClass('selected');
    });

当页面被加载时,dataTables 不会确认它是从美学上选择的。该行突出显示,但是当我尝试使用下载到 excel 按钮等功能时,它只下载选定的行,它没有找到任何要下载的选定行。好像我只应用了 CSS 样式而不是它背后的相应功能。当我取消选中已加载选中的复选框时,该行不会返回到未选中状态,它仍然突出显示,就像我刚刚选中它一样。

            {
                extend: 'excel',
                text: 'Download Excel',
                exportOptions: {
                    columns: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
                    modifier: {
                        selected: true
                    }
                }
            }

如何加载选中复选框的页面并让 dataTables 将其识别为已选中而不是美观?

重新创建: 单击任何复选框以选择行,下载 excel - 有效 单击按钮重新加载 - 它重新加载选择的行,单击下载 excel,没有下载任何内容。 取消选中突出显示的行,它不会识别为取消选择。

https://jsfiddle.net/mbgfwjh2/3/

【问题讨论】:

    标签: jquery datatables


    【解决方案1】:

    原来我错过了select() 函数。只需检索复选框的行并针对它调用 select():

        $('input:checked').each(function() {
            var $row = $(this).closest('tr');           
            table.row($row).select();
        });
    

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 2011-03-19
      • 2015-01-18
      • 1970-01-01
      相关资源
      最近更新 更多