jqGrid错误的数据格式?

时间:2014-12-17 18:32:52

标签: javascript jquery json jqgrid

我试图将一些数据放入jqGrid并强制它显示在树视图中。 我的问题是,第6项(cid = 6)没有显示在网格中。第4项似乎有一些子项目,但扩展这个分支什么也没有显示。第6项无法在树中找到(我想,我已将其定义为cid4的子项)。

enter image description here

以下是此代码http://jsfiddle.net/498jhxcg/的一个有效示例 (我的生产代码使用POST / AJAX / JSON,示例更改为localdata。网格在两种情况下都以相同的错误方式显示。)

数据格式是否错误,或者jqgrid是否定义错误? (顺便说一句,将parent_id更改为parentid并没有帮助。)

var myjsondata = '{"rows":[ 
{"cid":"1","name":"cat1","lvl":"0","parent_id":"null","isleaf":true,"expanded":false,"loaded":true},
{"cid":"2","name":"cat2","lvl":"0","parent_id":"null","isleaf":false,"expanded":false,"loaded":true},
{"cid":"3","name":"cat3","lvl":"1","parent_id":"2","isleaf":true,"expanded":false,"loaded":true},
{"cid":"7","name":"cat7","lvl":"1","parent_id":"2","isleaf":true,"expanded":false,"loaded":true},
{"cid":"4","name":"cat4","lvl":"0","parent_id":"null","isleaf":false,"expanded":false,"loaded":true},
{"cid":"6","name":"cat6","lvl":"1","parent_id":"4","isleaf":true,"expanded":false,"loaded":true},
{"cid":"5","name":"cat5","lvl":"0","parent_id":"null","isleaf":true,"expanded":false,"loaded":true}
],"records":7,"total":1}';

$('#jgtable').jqGrid({
ExpandColumn:'id',
datastr: myjsondata,
datatype: 'jsonstring',    
colNames: [
    'Id',
    'Name',
    'Parent id',
    'isLeaf?',
],
colModel: [
    { index: 'cid', name: 'cid', width:"75px"},
    { index: 'name', name: 'name', width:"75px"},
    { index: 'parent_id', name: 'parent_id',width:"75px"},
    { index: 'isleaf', name: 'isleaf', width:"75px"},
],
pager: '#pager',
rowNum: 10,
rowList:[2, 10, 25, 50, ],
height: 'auto',
minHeight: '250px',
recordpos: 'right',
viewrecords: true,
gridview: false,
treeGrid: true,
treeGridModel : 'adjacency',
treedatatype: "local",             
treeReader : {
    level_field: "lvl",
    parent_id_field: "parent_id", 
    leaf_field: "isleaf",
    expanded_field: "expanded",
    loaded_field: "loaded",
    index_field: "cid",
},
jsonReader: {
    repeatitems: false,             
},
});

1 个答案:

答案 0 :(得分:0)

在我看来,您应该将key: true属性添加到cid列的定义中。您可以选择使用jsonReader: { id: "cid" }选项(或做两件事)。在这种情况下,输入数据的cid属性值将被解释为项目的ID,而parent_id的值将是正确的。

请参阅http://jsfiddle.net/OlegKi/498jhxcg/19/