jqgrid 数据在分组时未定义

jqgrid data comes as undefined while grouping

我正在使用免费 jqgrid.I 我正在使用下面的代码作为一个简单的 example.Data 在没有分组的情况下是正确的但是分组它无法捕获未在 [= 中显示的数据(placeid) 16=] 了解在分组时,rowObject 没有 placeid,但我该如何解决这个问题。 jsfiddle link: http://jsfiddle.net/johnnash03/6jhqgxw8/5/

        var rows = [{
              "place": "Kerala",
              "placeid": "61",
              "code": "kc10",
        }]

        var cols =  ["place","code"];
        $("#grid").jqGrid({
            datatype: "local",
            height: 250,
            colNames: cols,
            colModel: [{
                name: 'place',
            }, {
                name: 'code',
                formatter: function( cellvalue, options, rowObject ) {
                    return rowObject['placeid']
                }
            }]
        });

        for(var i=0;i<rows.length;i++)
            $("#grid").jqGrid('addRowData',i+1,rows[i]);

        // Data comes correct on commenting following line.
        $("#grid").jqGrid( 'groupingGroupBy', 'place');

您的演示中的主要问题是 属性 placeid 的使用,它不在网格的任何列中。您使用循环中调用的 addRowData 方法额外填充网格。这是填充网格的最慢方法,据我所知。在您的情况下,最重要的是网格的内部 data 将仅填充 placecodeid 属性。没有 placeid 属性 会保存在本地。所以后来摸索格子就看不到了。

可以通过使用additionalProperties选项来解决这个问题,该选项指定输入项的附加属性的名称,需要保存在本地data。添加

additionalProperties: ["placeid"]

选项解决了这个问题。查看修改后的演示http://jsfiddle.net/OlegKi/6jhqgxw8/8/

我强烈建议您将代码修改为以下内容:

var rows = [{
      "place": "Kerala",
      "placeid": "61",
      "code": "kc10",
}];

$("#grid").jqGrid({
    data: rows,
    colModel: [
        { name: "place" },
        { name: "code",
            formatter: function (cellvalue, options) {
                return options.rowData.placeid;
            }
        }
    ],
    grouping: true, 
    groupingView : { 
        groupField : ["place"]
    },
    localReader: { id: "placeid" }
});

也可以选择添加 additionalProperties: ["placeid"]。参见 http://jsfiddle.net/OlegKi/6jhqgxw8/9/

以上代码一次创建、填充和分组数据。它另外使用 localReader: { id: "placeid" } 来通知 placeid 属性 具有 rowid 信息(用作行的 id 属性 值的唯一值:<tr> 元素)而不是默认的 id 属性.