Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Установка данных jqGrid после создания сетки

Автор вопроса: John LivermoreОтветов: 3

Следующий пример кода загрузит jqGrid (этот код работает)...

jQuery(document).ready(function () {
    var gridData = [
                { col1: 'cell11', col2: 'cell12', col3: 'cell13' },
                { col1: 'cell21', col2: 'cell22', col3: 'cell23' }
                ];
    $('#myGrid').jqGrid({
        data: gridData,
        datatype: 'clientSide',
        colNames: ['Col1', 'Col2', 'Col3'],
        colModel: [
                        { name: 'col1' },
                        { name: 'col2' },
                        { name: 'col3' }
                        ]
    })

Как мне переписать пример, чтобы gridData устанавливался после создания jqGrid? Я пробовал это...

jQuery(document).ready(function () {
    var gridData = [
                { col1: 'cell11', col2: 'cell12', col3: 'cell13' },
                { col1: 'cell21', col2: 'cell22', col3: 'cell23' }
                ];
    $('#myGrid').jqGrid({
        datatype: 'clientSide',
        colNames: ['Col1', 'Col2', 'Col3'],
        colModel: [
                        { name: 'col1' },
                        { name: 'col2' },
                        { name: 'col3' }
                        ]
    })


    $('#myGrid')[0].data = gridData;

Однако приведенный выше код не работает. Может кто-нибудь показать мне, как, пожалуйста?

ОБНОВЛЕНИЕ: я также пробовал это для моей последней строки, но это тоже не сработало...

    $('#jqgrid-panel-contents').jqGrid('setGridParam', {data: gridData});

jqgrid

Ответы

Ответ 1 · рейтинг 18 · Ewan Heming

Может быть, попробовать перезагрузить сетку после этого?

 $('#jqgrid-panel-contents').jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid');

Ответ 2 · yngrdyn

@infantDev Если бы я хорошо понял, что вы пытались сказать: я думаю, вам нужно сделать GridUnload

$("#jqgrid-panel-contents").jqGrid('GridUnload');

перед добавлением новых данных

Ответ 3 · AaA

Решение от Юэна Хеминга (выше) не будет работать с Бесплатный JQGrid (по крайней мере, с версией 4.15.2), когда в сетку загружены данные, и вы хотите изменить данные.

однако следующее, что было предложено Олегом (я не помню, где), будет работать, и оно также установит ваш пейджер сетки на 1, если в ваших новых данных не так много страниц.

var gParams = $('#myGrid').jqGrid("getGridParam");
gParams.data = data;
$('#myGrid').trigger("reloadGrid", [{page: 1}]);

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы