【问题标题】:How to bind checkbox value dynamically from database using jQuery Datatables plugin如何使用 jQuery Datatables 插件从数据库动态绑定复选框值
【发布时间】:2015-09-24 22:07:17
【问题描述】:

我正在使用jQuery DataTables 插件来显示数据。在这里,我有一个带有复选框的列,应该根据数据库中的值选中或取消选中,即如果来自 db 的值是 true,则应该选中复选框,如果来自 db 的值是 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+'"/>'
            }
        }]
    });

从 db 返回的 JSON 是

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

【问题讨论】:

    标签: checkbox binding datatables


    【解决方案1】:

    原因

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

    解决方案

    请改用以下代码:

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

    演示

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

    【讨论】:

    • 感谢您的回复。我认为它应该可以工作,并会在实施后投票。同时,如果可能,请澄清我在StackOverflow 中提出的关于使用 JqueryDatatables 动态使用href 属性的另一个问题
    • @ksg,你的另一个问题已经有了正确答案,所以我刚刚投了赞成票。
    • 谢谢你的回答队友。我很想知道括号()在这里的重要意义。(data ? ' checked' : '')
    • @ksg,括号允许先执行被包围的子句,参见grouping operator
    • @Gyrocode.com 这两种方式绑定吗?所以如果我提交我的表单,我可以获得绑定复选框的值?
    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2016-05-05
    • 1970-01-01
    相关资源
    最近更新 更多