DataTables的自动填充扩展 - 列禁用无效

时间:2015-07-20 20:59:13

标签: datatables autofill

我正在使用带有自动填充扩展的Datatables插件,其中包含输入元素,如下所示: DataTables' Autofill extension with input elements not working。 这很好用。但是,我无法禁用特定列的自动填充。当我使用“enable”:false选项,并将其设置为特定列时,回调将停止工作。有没有人知道是否有办法禁用自动填充的某些列,同时仍然允许回调正常运行?以下禁用cols 1-4,但是read / write / step函数不再复制已编辑的输入值:

    new $.fn.dataTable.AutoFill(table, {
        "columnDefs": [{
            "targets": [5, 6, 7, 8, 9],

            "read": function (cell) {
                return $('input', cell).val();
            },
            "write": function (cell, val) {
                return $('input', cell).val(val);
            },
            "step": function (cell, read, last, i, x, y) {
                return last === undefined ? read : last;
            },
            "enable": false, "targets": [1,2,3,4] //omitting this leaves all columns enabled.
        }]
    });

1 个答案:

答案 0 :(得分:1)

您编写它的方式是,您在同一对象中定义了targets属性两次。您需要做的是给columnDefs另一个指向其他目标的对象。像这样:

new $.fn.dataTable.AutoFill(table, {
    columnDefs: [
        {
            targets: [5, 6, 7, 8, 9],
            read: function (cell) {
                return $('input', cell).val();
            },
            write: function (cell, val) {
                return $('input', cell).val(val);
            },
            step: function (cell, read, last, i, x, y) {
                return last === undefined ? read : last;
            }
        },
        {
            targets: [1,2,3,4],
            enable: false
        }
    ]
});