【问题标题】:jqGrid colModel and jsonReader with no cell没有单元格的 jqGrid colModel 和 jsonReader
【发布时间】:2010-10-04 18:59:14
【问题描述】:

以下 json 和 jqgrid 选项在我的网格中没有数据。

var grid = jQuery("#grid")[0]; grid.addJSONData({ // json 总计:1, 页数:1, 记录:10, 项目: [ {产品ID:'1',名称:'可乐'}, { 产品 ID:'2',名称:'百事可乐'}, {产品ID:'3',名称:'L&P'}, {产品ID:'4',名称:'A&B'}, { ProductID:'5',名称:'All Star'}, {产品ID:'6',名称:'Wai'}, {产品ID:'7',名称:'cd'}, {产品ID:'8',名称:'LV'}, {产品ID:'9',名称:'DD'}, { 产品 ID:'10',名称:'aW' } ] }); // jqGrid 选项 { ... colNames: ['ProductID', 'Name'], colModel:[{名称:'ProductID',标签:'Id'}, {名称:'名称',标签:'名称'}], jsonReader:{ 根:'项目', 细胞: '' }, ... }

【问题讨论】:

    标签: jquery json jqgrid


    【解决方案1】:

    您的数据没有id 属性。 ProductID 似乎扮演了您数据的 id 的角色。因此,您应该在ProductID 列的定义中使用额外的key:true 选项,或者在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);
    

    如果这一切都无济于事,您应该在问题中包含可用于重现您的问题的整个代码。

    【讨论】:

    • 数据不是真正的本地数据。我刚刚制作了一个本地对象来进行故障排除。
    • @Travis Heseman:我们应该将快速修复您的问题与优化分开。您必须在jsonReader 中定义key:trueid:ProductID 以使您的网格正常工作。我只写了它不会是最佳代码。在我关于 stackoverflow 的第一篇文章中(参见 stackoverflow.com/questions/2660226/…stackoverflow.com/questions/2675625/…)我解释说 jqGrid 有更好的方法来加载 JSON 数据。
    • @Travis Heseman:如果您发布更多程序代码,我可以向您展示如何使用 jqGrid 为您加载 JSON 数据,而不是按 addJSONData 加载数据。 stackoverflow.com/questions/3054463/… 对您来说可能也很有趣。
    • 实际上只是按照您对 key:true 的建议进行操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    相关资源
    最近更新 更多