在Datatable中检查所有页面

时间:2018-05-28 03:13:04

标签: javascript jquery css datatables

我有一个代码,用复选框显示数据表中的数据,这里是

var link = '../../php_try/get_info.php?id='+ nda_id + '&val_dept=' + val_dept + '&val_sect=' + val_sect;
        $('#tbl_user').dataTable({
            "destroy": true,
            "order": [],
            "bProcessing": true,
            "stateSave": true,
            "iDisplayLength": "All",
            "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
            "sAjaxSource": link,
            'columnDefs': [{
                'targets': 0,
                'render': function (data, type, row, meta){
                    return '<input type="checkbox" id="md_checkbox_' + data + '" class="filled-in chk-col-blue chkall" style="display: flex">' +
                           '<label for="md_checkbox_' + data + '"></label>';
                }
            },
            { targets: 0, orderable: false },
            { className: "custom_right", "targets": [1] },
            ],
            "aoColumns": [
                { mData: 'test1' },
                { mData: 'test2' },
                { mData: 'test3' },
                { mData: 'test4' },
                { mData: 'test5' },
                { mData: 'test6' },
                { mData: 'test7' }
            ]
        });

现在,link这就是我的表格中的复选框所在的位置

现在我有一个主复选框,这里是

<input type="checkbox" id="md_checkbox_21" class="filled-in chk-col-blue">
<label for="md_checkbox_21">Check All</label>

我选择数据表中所有复选框的代码是

/* Check all sub checkbox if main checkbox is checked */
$("#md_checkbox_21").change(function() {
    if(this.checked) {
        $('.chkall').prop("checked", true);
    } else {
        $('.chkall').prop("checked", false);
    }
});

实际上它的工作问题是隐藏页面上的另一个复选框没有被选中。我的问题是我如何检查所有复选框,包括那些其他页面

1 个答案:

答案 0 :(得分:1)

您可以在绘图事件处理程序中执行此操作。

DTable.on('draw', function () {
    if($('#md_checkbox_21').is(':checked') == true){
        $('.chkall').prop("checked", true);
    }
});

使上述代码有效。

变化:

$('#tbl_user').dataTable({

要:

var DTable = $('#tbl_user').dataTable({