我试图将一些数据放入jqGrid并强制它显示在树视图中。 我的问题是,第6项(cid = 6)没有显示在网格中。第4项似乎有一些子项目,但扩展这个分支什么也没有显示。第6项无法在树中找到(我想,我已将其定义为cid4的子项)。
以下是此代码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,
},
});
答案 0 :(得分:0)
在我看来,您应该将key: true
属性添加到cid
列的定义中。您可以选择使用jsonReader: { id: "cid" }
选项(或做两件事)。在这种情况下,输入数据的cid
属性值将被解释为项目的ID,而parent_id
的值将是正确的。