jqGrid не отображает данные JSON

Я прочитал некоторые из предыдущих вопросов и ответов по этой проблеме, но не мог понять, почему это не работает для меня. Я могу видеть сетку, но она пуста и пожарный не дает мне никаких ошибок.

Мои данные JSON находятся в этой форме

{"COLUMNS":["ID","MEMO"],"DATA":[[1,"test"],[2,"test1"],[3,"test2"]]} 

Я проверил эти данные с помощью JSON Validator, и он прошел

мой код инициализации с помощью jsonReader

jQuery("#invoices").jqGrid({
    url:'/bob/index.cfm/invoices/read?format=json',
    datatype: "json",
    colNames:['id','memo'],
    colModel:[
        {name:'id', width:255},
        {name:'memo', width:290}
    ],
    rowNum:10,
    rowList:[10,20,30],
    pager: '#invoicespager',
    sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
    caption:"JSON Example",
    jsonReader: {
        repeatitems: false,
        id: "Id",
        root: function (obj) { return obj; },
        page: function (obj) { return 1; },
        total: function (obj) { return 1; },
        records: function (obj) { return obj.length; }
    }       

});
jQuery("#invoices").jqGrid('navGrid','#invoicespager',{edit:false,add:false,del:false});

1 ответ

Решение

Большинство данных JSON могут быть прочитаны с помощью jqGrid. Вы должны просто использовать соответствующий jsonReader. Для чтения ваших данных JSON вы можете использовать

jsonReader: {
    repeatitems: true,
    id: "0",
    cell: "",
    root: "DATA",
    page: function() { return 1; },
    total: function() { return 1; },
    records: function(obj) { return obj.length; }
}

Если вы уменьшите пустое место в вашей сетке с height: 'auto' вы увидите следующее:

(см. демо)

Другие вопросы по тегам