【发布时间】:2015-03-31 03:27:33
【问题描述】:
我正在尝试使用 Jqgrid 和 Json 数据填充执行示例小提琴。
这里是小提琴,使用静态数据,http://jsfiddle.net/aUDHx/2/
但是当我尝试对动态数据使用相同的数据时,它不会填充 jqgrid 上的数据。
<table id="grid"></table>
<div id="gridPager"></div>
<br/>
<a href="http://www.ok-soft-gmbh.com/jqGrid/LocalAdjacencyTree4.htm">Another local adjaceny example</a>
var mydata="[";
//var mydata;
for (var i = 0; i < 10; i++) {
mydata=mydata+'{id: i, label:"No " + i, number:"02200220", status:"OPEN"}';
mydata=mydata+",";
}
mydata= mydata.slice(0,-1);
mydata=mydata+"]";
alert(mydata);
var obj = jQuery.parseJSON(mydata);
alert(obj);
/*[
{id: "1", label:"No 1", number:"02200220", status:"OPEN"},
{id: "1", label:"No 1", number:"02200220", status:"OPEN"},
{id: "1", label:"No 1", number:"02200220", status:"OPEN"},
{id: "1", label:"No 1", number:"02200220", status:"OPEN"}
];*/
var grid = $("#grid");
grid.jqGrid({
//data: obj, // doesn't work
datatype: "local",
colNames: ['Id', 'Label', 'Number', 'Status'],
colModel: [
{ name:'id',index:'id', width:60, sorttype: "int"},
{ name: 'label', index: 'label', width: 180, sorttype: "string"},
{ name: 'number', index: 'number', width: 120, sorttype: "float" },
{ name: 'status', index: 'status', width: 120, sorttype: "string" } ],
gridview: true,
sortname: 'id',
treeGrid: true,
loadonce: true,
treeGridModel: 'adjacency',
treedatatype: 'local',
ExpandColumn: 'label',
height: 'auto',
pager : "#gridPager",
caption: "Stack Overflow Adjacency Example"
});
// we have to use addJSONData to load the data
grid[0].addJSONData({
total: 1,
page: 1,
records: obj.length,
rows: obj
});
我在这里缺少什么,有人可以帮助我吗,我对 Jquery 很陌生。
使用 JSON.Stringify(),它正在打印空网格..
var mydata="[";
for (var i = 0; i < 10; i++) {
mydata=mydata+{"id" : "i", "label":"No ", "number":"02200220", "status":"OPEN"};
mydata=mydata+",";
}
mydata= mydata.slice(0,-1);
mydata=mydata+"]";
alert(mydata);
var obj = JSON.stringify(mydata);
alert(obj);
var grid = $("#grid");
grid.jqGrid({
//data: obj, // doesn't work
datatype: "local",
colNames: ['Id', 'Label', 'Number', 'Status'],
colModel: [
{ name:'id',index:'id', width:60, sorttype: "int"},
{ name: 'label', index: 'label', width: 180, sorttype: "string"},
{ name: 'number', index: 'number', width: 120, sorttype: "float" },
{ name: 'status', index: 'status', width: 120, sorttype: "string" } ],
gridview: true,
sortname: 'id',
treeGrid: true,
loadonce: true,
treeGridModel: 'adjacency',
treedatatype: 'local',
ExpandColumn: 'label',
height: 'auto',
pager : "#gridPager",
caption: "Stack Overflow Adjacency Example"
});
// we have to use addJSONData to load the data
grid[0].addJSONData({
total: 1,
page: 1,
records: 10,
rows: obj
});
提前致谢。
【问题讨论】:
-
不要手动创建 JSON,使用
JSON.stringify()。 -
我看不出您的
for循环可以正确地创建 JSON。你有+ i在引号内,连接不会完成。 -
而在JSON中,所有的键都必须被引用,所以应该是
"id": "1"。 -
yes Barmar .. 我尝试了 yu 前面提到的所有事情,但是它创建了没有数据的空网格,我在这里缺少什么?用 JSON.Stringify() 编辑了问题
-
你为什么要首先制作一个 JSON 字符串?只需使用循环创建对象数组,并将其传递给 jQgrid。