在ASP.NET MVC中使用jQuery Data表时如何更新模型数据

时间:2018-01-22 07:24:28

标签: javascript jquery json asp.net-mvc datatables

我从JSON返回大量数据并进行排序,过滤和分页,我正在使用jQuery dataTable.

这对于排序,搜索和分页非常有效。

但是当我尝试使用View控件绑定模型时,我遇到了一个问题。

例如,我有以下JSON返回,

{
    "data":
    [
    {"IsSelected":true,"Name":"SMyDataPoint__01"},
    {"IsSelected":true,"Name":"SMyDataPoint__04"},
    {"IsSelected":true,"Name":"SMyDataPoint__07"},
    {"IsSelected":true,"Name":"SMyDataPoint__08"},
    {"IsSelected":true,"Name":"SMyDataPoint__09"},
    {"IsSelected":true,"Name":"SMyDataPoint__10"},
    {"IsSelected":true,"Name":"SMyDataPoint__11"}
    ]
}

现在我正在使用jQuery在浏览器中填充json数据,

$('#myTableName').DataTable(
        {
            "ajax": {
                "url": "/API/Loaddata",
                "type": "GET",
                "datatype": "json"
            },
            "columns": [
                {
                    "data": "IsSelected",
                    "render": function (data, type, row) {
                        if (type === 'display') {
                            return '<input type="checkbox" class="editor-active">';
                        }
                        return data;
                    },
                    "className": "dt-body-center"
                   // "autoWidth": true
                },
                { "data": "Name", "autoWidth": true }
            ],
            "rowCallback": function (row, data) {
                // Set the checked state of the checkbox in the table
                $('input.editor-active', row).prop('checked', data.active == 1);
            }
        }
    );

虽然我从JSON获得ISelected为true,但在UI中,它们没有被勾选。

1 个答案:

答案 0 :(得分:3)

您显示的json对象没有名为active的属性(因此data.active将返回undefined)。使用IsSelected设置checked属性。

$('#myTableName').DataTable({
   ....
   "rowCallback": function (row, data) {
        // Set the checked state of the checkbox in the table
       $('input.editor-active', row).prop('checked', data.IsSelected);
    }
})