Сопоставить данные JSON с 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'
        }
    })

1 ответ

Решение

Вам не нужно конвертировать данные в строку 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',
    ...
});
Другие вопросы по тегам