DataTables draw()方法不起作用

时间:2015-02-06 08:11:25

标签: jquery html css datatables

这是我的代码:

$(document).ready(function () {
    var map;
    var table = $('#example').DataTable({
        dom: 'T<"clear">lfrtip',
        tableTools: {
            "sRowSelect": "single"
        },
        "fnCreatedRow": function (nRow, aData, iDataIndex) {
            console.log("HI");
            var s = $('td:eq(1)', nRow).text();

            if (map.hasOwnProperty(s)) $('td:eq(2)', nRow).text(map[s]);

        }
    });
    map = {
        "Accountant": "100",
        "Software Engineer": "150"
    };


    table.fnDraw();
});

有关完整代码,请查看this jsFiddle

这里我在DataTables使用它之后分配了map变量。所以我需要重绘表格。但我认为draw()函数似乎不起作用。

2 个答案:

答案 0 :(得分:1)

请尝试以下操作:

var table = $('#example').DataTable();

$('#myFilter').on( 'keyup', function () {
    table
        .search( this.value )
        .draw();
} );

参考:https://datatables.net/reference/api/draw()

答案 1 :(得分:0)

在代码达到map初始化之前,fnCreatedRowmap中使用它之前需要初始化var map = { "Accountant": "100", "Software Engineer": "150" }; var table = $('#example').DataTable({ dom: 'T<"clear">lfrtip', tableTools: { "sRowSelect": "single" }, "fnCreatedRow": function (nRow, aData, iDataIndex) { var s = $('td:eq(1)', nRow).text(); if (map.hasOwnProperty(s)) $('td:eq(2)', nRow).text(map[s]); } }); 变量。

fnDraw()

在这种情况下,您无需使用{{1}}。