以下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: '' }, ... }
答案 0 :(得分:0)
您的数据没有id
属性。似乎ProductID
扮演了数据ID的角色。因此,您应该在key:true
列的定义中使用其他ProductID
选项,或在jsonReader
中添加“id:ProductID”。
此外,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);
如果所有这些都无济于事,您应该在问题中包含可用于重现问题的完整代码。