如何使用 jQuery Datatables 插件从数据库动态绑定复选框值

How to bind checkbox value dynamically from database using jQuery Datatables plugin

我正在使用 jQuery DataTables 插件来显示数据。在这里,我有一个带有复选框的列,应该根据数据库中的值来选中或取消选中,即如果来自数据库的值是 true 复选框应该被选中,如果来自数据库的值是 false 复选框应该取消选中。

这是我到目前为止所尝试过的方法。

table = $("#dataTableMenuRole").dataTable({
        "ajax": {
            "url": "@Url.Action("LoadGridView", "MenuSettings")",                
            "method": "POST",
            "dataType": "json",
            "data": function (d) {
                d.roleId = $("#ddlRoles").val()
            }
        },
        columns: [
            { "data": "MenuName" },
            { "data": "CanAdd" }               

        ],            
        "bProcessing": true,
        "aoColumnDefs": [{
            "targets": 1,
            "bSortable": false,
            "mRender": function (data, type, full, meta) {
                return '<input type="checkbox" class="minimal" checked="'+data+'"/>'
            }
        }]
    });

从数据库返回的JSON是

{"data":[{"MenuName":"Roles","CanAdd":true},{"MenuName":"Menu","CanAdd":true},{"MenuName":"ServiceTax","CanAdd":false}]}

CAUSE

尽管 data 中有值,但您定义了 checked 属性,复选框将始终被选中。

SOLUTION

请改用以下代码:

"mRender": function (data, type, full, meta) {
    return '<input type="checkbox" class="minimal"' + (data ? ' checked' : '') + '/>';
}

DEMO

有关代码和演示,请参阅 this jsFiddle