将JSON数据映射到jqGrid

Joh*_*ore 3 jqgrid

下面的代码创建一个javascript对象,将其转换为JSON,并尝试将其加载到jqGrid中.我一直在关注维基的例子,我觉得我已经非常准确地跟随了他们的领导,但仍然没有运气.任何人都可以看到这里缺少的链接?

jQuery(document).ready(function () {

    var gridData = {
        total: 2,
        page: '1',
        records: '12',
        rows: [
                        { id: '1', col1: 'cell11', col2: 'cell12', col3: 'cell13' },
                        { id: '2', col1: 'cell21', col2: 'cell22', col3: 'cell23' }
                        ]
    };

    gridData = $.toJSON(gridData);
    $('#jqgrid').jqGrid({
        data: gridData,
        datatype: 'json',
        colNames: ['Col1', 'Col2', 'Col3'],
        colModel: [
                        { name: 'col1' },
                        { name: 'col2' },
                        { name: 'col3' }
                        ],
        jsonReader: {
            root: 'rows',
            total: 'total',
            page: 'page',
            records: 'records',
            repeatitems: false,
            id: '0'
        }
    })
Run Code Online (Sandbox Code Playgroud)

Ole*_*leg 5

您不需要将数据转换为JSON字符串.jqGrid必须将数据转换回来.如果您应该使用datatype:'jsonstring'和datastr:gridData.

最好的方法是只使用项目数组:

var gridData = [
    { id: '1', col1: 'cell11', col2: 'cell12', col3: 'cell13' },
    { id: '2', col1: 'cell21', col2: 'cell22', col3: 'cell23' }
];
$('#jqgrid').jqGrid({
    data: gridData,
    datatype: 'local',
    ...
});
Run Code Online (Sandbox Code Playgroud)

  • @John:如果你想使用`datatype:'json'`,应该从Web服务器获取或发布JSON数据.在最简单的情况下,您应该将数据保存在文本文件中,将文本文件放在Web服务器上,并使用文本磁贴的url作为jqGrid的`url`参数的值.我建议您在http://www.jsonlint.com/中验证JSON文本.请参阅http://www.ok-soft-gmbh.com/jqGrid/John.txt和http://www.ok-soft-gmbh.com/jqGrid/John.htm作为演示 (3认同)