在IE中搜索或过滤后,Jquery数据表导出无效

时间:2016-09-19 11:08:15

标签: asp.net-mvc-4 datatables

我在asp.net MVC 4中使用jquery数据表来绑定数据。

问题是,

  

搜索或过滤后,新的数据集不会导出到   Excel中。它总是在页面加载时导出数据。

以上问题我只面对IE,但是Chrome工作正常。

代码:

var table = $('#gamtbl').DataTable(
    {
        sScrollY: 450,
        scrollX: true,
        scrollCollapse: true,
        fixedColumns: {
            leftColumns: 2
        },
        "sDom": '<"H"Tlfr>tip<"F">',
        "oTableTools": {
            "sSwfPath": "../../Images/copy_csv_xls_pdf.swf",
            "aButtons": [{
                "sExtends": "collection",
                "sButtonText": "Export",
                "aButtons": [{
                    'sExtends': "csv",
                    "mColumns": [0,1, 2, 3, 4]
                },
                    {
                        'sExtends': "xls",
                        "sFileName": "*.xls",
                        "mColumns": [0, 1, 2, 3, 4]
                    },
                ],
            }],
        }
    });
    table.columns().eq(0).each(function (colIdx) {
        $('input', 'th:nth-child(' + (colIdx + 1) + ')').on('keyup change', function () {
            table
                .column(colIdx)
                .search(this.value)
                .draw();
        });
    });

1 个答案:

答案 0 :(得分:1)

查看oSelectorOpts(旧的“遗留”文档)。您需要指定只想导出已过滤的行:

"aButtons": [
  {
    sExtends: "csv",
    mColumns: [0,1, 2, 3, 4],
    oSelectorOpts: { filter: "applied", order: "current" }
  },
  ....
]

但你应该考虑使用Buttons插件而不是退役的TableTools,现在你正在使用dataTables 1.10.x ......