Json JQgrid 上未填充具有键值参数的数据

Json data with key-value par is not getting populated on JQgrid

我正在尝试使用 Jqgrid 和 Json 数据填充来执行示例 fiddle。

这是 fiddle ,使用静态数据,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,直接构建对象数组即可:

var obj = [];
for (var i = 0; i < 10; i++) {
    obj.push({
        id: i,
        label: "No " + i,
        number: "02200220",
        status: "OPEN"
    });
}

JSON 的目的是允许您在机器之间传递对象和数组,例如在 AJAX 调用中。但是,如果您在 Javascript 中创建数据,则无需将其转换为字符串。