jqgrid不显示数据

Jqgrid does not showing data

请看下面我的js代码

$(function () {
    $("#grid").jqGrid({
        url: "/Home/GetRoles",
        dataType: 'json',
        mtype: 'Get',
        colNames: ['ID', 'Role Name', 'Active'],
        colModel: [
            { key: true, hidden: true, name: 'RoleId', index: 'RoleId' },
            { key: true, name: 'RoleName', index: 'RoleName' },
             { key: true, name: 'Active', index: 'Active' }
        ],
        pager: jQuery('#pager'),
        rowNum: 10,
        rowList: [10, 20, 30, 40],
        height: '100%',
        viewrecords: true,
        caption: 'Roles',
        emptyrecords: 'No records to display',
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            id: "0"
        },
        autowidth: true,
        multiselect: false 
    });
});

和Get请求的输出

{"total":2,"page":1,"records":13,"rows":[{"RoleId":1,"RoleName":"Role1","Active":true},{"RoleId":2,"RoleName"
:"Role 2","Active":false},{"RoleId":13,"RoleName":"Role 3","Active":false},{"RoleId":3,"RoleName":"Role
 4","Active":false},{"RoleId":4,"RoleName":"Role 5","Active":false},{"RoleId":5,"RoleName":"Role 6","Active"
:false},{"RoleId":6,"RoleName":"Role 7","Active":false},{"RoleId":7,"RoleName":"Role 8","Active":false
},{"RoleId":8,"RoleName":"Role 9","Active":false},{"RoleId":9,"RoleName":"Role 10","Active":false}]}

但网格总是空的

您应该将dataType: 'json'修改为datatype: 'json',属性 key: true只能放在一栏中。您应该将其从 RoleNameActive 列中删除。你的JSON数据在字符串"Role 4"中间有换行符。JSON数据真的有换行符的地方吗?也会报错。

此外,您应该始终写下有关您使用的 jqGrid 版本的信息以及来自哪个分支(free jqGrid, Guriddo jqGrid JS 或版本 <=4.7 的旧 jqGrid)。一个版本存在的问题在另一个版本中不可能存在。此外,不同的版本和分叉有不同的实施选项,因此建议您一些解决方法需要知道您使用的版本和分叉。我开发了 free jqGrid fork,并且可以从 fork 向您推荐最新版本的 jqGrid (4.13.0)。