jqGrid colModel и jsonReader без ячейки - PullRequest
0 голосов
/ 04 октября 2010

Следующие параметры json и jqgrid не дают мне данных в моей сетке.

var grid = jQuery("#grid")[0];
grid.addJSONData({ // the json
    total: 1,
    page: 1,
    records: 10,
    items: [
        { ProductID: '1', Name: 'Coke' },
        { ProductID: '2', Name: 'Pepsi' },
        { ProductID: '3', Name: 'L&P' },
        { ProductID: '4', Name: 'A&B' },
        { ProductID: '5', Name: 'All Star' },
        { ProductID: '6', Name: 'Wai' },
        { ProductID: '7', Name: 'cd' },
        { ProductID: '8', Name: 'LV' },
        { ProductID: '9', Name: 'DD' },
        { ProductID: '10', Name: 'aW' }
    ]
});

// jqGrid options
{
    ...
    colNames: ['ProductID', 'Name'],
    colModel: [{ name: 'ProductID', Label: 'Id' },
               { name: 'Name', Label: 'Name'}],
    jsonReader: {
        root: 'items',
        cell: ''
    },
   ...
}


1 Ответ

0 голосов
/ 04 октября 2010

Ваши данные не имеют id свойств. Кажется, что ProductID играют роль идентификатора ваших данных. Поэтому вам следует использовать дополнительную опцию key:true в определении столбца ProductID или включить 'id: ProductID' в jsonReader.

Кроме того, свойство Label должно быть записано в нижнем регистре: label. Он заменяет значение из заголовка столбца colNames. Если вы используете свойство label для всех столбцов, вам больше не нужно определять colNames массив.

Если вы хотите заполнить jqGrid локальными данными, наиболее эффективным способом является использование функции addRowData . В этом случае вы должны использовать localReader вместо jsonReader. Его можно использовать для добавления не только строки, но и массива данных строки. В случае массивов в качестве данных первым параметром должно быть имя свойства id. Таким образом, ваш код может выглядеть следующим образом:

var myData = [
        { ProductID: '1', Name: 'Coke' },
        { ProductID: '2', Name: 'Pepsi' },
        { ProductID: '3', Name: 'L&P' },
        { ProductID: '4', Name: 'A&B' },
        { ProductID: '5', Name: 'All Star' },
        { ProductID: '6', Name: 'Wai' },
        { ProductID: '7', Name: 'cd' },
        { ProductID: '8', Name: 'LV' },
        { ProductID: '9', Name: 'DD' },
        { ProductID: '10', Name: 'aW' }
    ];
jQuery("#grid").jqGrid ('addRowData', 'ProductID', myData);

Если все это не поможет, вы должны включить в свой вопрос весь код, который можно использовать для воспроизведения вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...