jqGrid 生成行但不显示任何数据
jqGrid generating rows but not displaying any data
我正在尝试在 jqGrid 上显示 ajax 数据,尽管它生成空行,但没有数据 displayed.Any 对此提供帮助将不胜感激。 Click to view copy of my jqGrid -
这是我的代码:
HTML:
<table id="list47"></table>
<div id="plist47"></div>
JQuery代码:
var mydata=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var headerData=["id","Name","PackageCode"];
//As header data is taken from another API I would need it in a separate array like the above.
jQuery("#list47").jqGrid({
data: mydata,
datatype: "local",
height: 150,
rowNum: 10,
colNames: headerData,
colModel: headerData,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json Data grid"
});
我什至尝试了以下方法,但在这方面也没有任何进展:
var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var he=["id","Name","PackageCode"];
jQuery("#list47").jqGrid({
//data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: he,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
for(var i=0;i<md.length;i++){
jQuery("#list47").addRowData(i+1,md[i]);
}
问题是您的 colModel 没有按照 jqGrid 的预期定义。
为了解决您的问题,我添加了一个 colmodel 变量来保存正确的 colmodel 定义,并将 colModel 网格选项设置为该变量。
这里有一个JsFiddlelink的解决方法。
var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var he=["id","Name","PackageCode"];
var colmodel= [{name:'id', index:'id', width:55},
{name:'Name', index:'Name' },
{name:'PackageCode', index:'PackageCode'}]
jQuery("#list47").jqGrid({
//data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: colmodel,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
for(var i=0;i<md.length;i++){
jQuery("#list47").addRowData(i+1,md[i]);
}
您也可以使用或不使用 addRowData for 循环。
jQuery("#list47").jqGrid({
data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: colmodel,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
谢谢!这个想法对我有用。我只需要像这样将我的数据相应地解析到 colModel 中:
var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var he=["id","Name","PackageCode"];
var c=[];
for(var i=0;i<he.length;i++){
c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"}');
}
var colmodel="["+c+"]"
//var colmodel= [{name:'id', index:'id', width:55},
// {name:'Name', index:'Name' },
// {name:'PackageCode', index:'PackageCode'}]
// c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"'+'"formatter":'+formatTitle+'}');
jQuery("#list47").jqGrid({
//data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: jQuery.parseJSON(colmodel),
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
for(var i=0;i<md.length;i++){
jQuery("#list47").addRowData(i+1,md[i]);
}
我正在尝试在 jqGrid 上显示 ajax 数据,尽管它生成空行,但没有数据 displayed.Any 对此提供帮助将不胜感激。 Click to view copy of my jqGrid - 这是我的代码:
HTML:
<table id="list47"></table>
<div id="plist47"></div>
JQuery代码:
var mydata=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var headerData=["id","Name","PackageCode"];
//As header data is taken from another API I would need it in a separate array like the above.
jQuery("#list47").jqGrid({
data: mydata,
datatype: "local",
height: 150,
rowNum: 10,
colNames: headerData,
colModel: headerData,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json Data grid"
});
我什至尝试了以下方法,但在这方面也没有任何进展:
var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var he=["id","Name","PackageCode"];
jQuery("#list47").jqGrid({
//data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: he,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
for(var i=0;i<md.length;i++){
jQuery("#list47").addRowData(i+1,md[i]);
}
问题是您的 colModel 没有按照 jqGrid 的预期定义。
为了解决您的问题,我添加了一个 colmodel 变量来保存正确的 colmodel 定义,并将 colModel 网格选项设置为该变量。
这里有一个JsFiddlelink的解决方法。
var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var he=["id","Name","PackageCode"];
var colmodel= [{name:'id', index:'id', width:55},
{name:'Name', index:'Name' },
{name:'PackageCode', index:'PackageCode'}]
jQuery("#list47").jqGrid({
//data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: colmodel,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
for(var i=0;i<md.length;i++){
jQuery("#list47").addRowData(i+1,md[i]);
}
您也可以使用或不使用 addRowData for 循环。
jQuery("#list47").jqGrid({
data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: colmodel,
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
谢谢!这个想法对我有用。我只需要像这样将我的数据相应地解析到 colModel 中:
var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" },
{ "id": "83432a", Name: "Name 3", "PackageCode": "83432a" },
{ "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }]
var he=["id","Name","PackageCode"];
var c=[];
for(var i=0;i<he.length;i++){
c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"}');
}
var colmodel="["+c+"]"
//var colmodel= [{name:'id', index:'id', width:55},
// {name:'Name', index:'Name' },
// {name:'PackageCode', index:'PackageCode'}]
// c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"'+'"formatter":'+formatTitle+'}');
jQuery("#list47").jqGrid({
//data: md,
datatype: "local",
height: 150,
rowNum: 10,
colNames: he,
colModel: jQuery.parseJSON(colmodel),
rowList: [10,20,30],
pager: "#plist47",
viewrecords: true,
caption: "json data grid"
});
for(var i=0;i<md.length;i++){
jQuery("#list47").addRowData(i+1,md[i]);
}