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
将仅填充 place
、code
和 id
属性。没有 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
属性.
我正在使用免费 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
将仅填充 place
、code
和 id
属性。没有 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
属性.