2014-12-17 5 views
0

Im пытается поместить некоторые данные в jqGrid и заставить его отображаться в древовидной структуре. Моя проблема в том, что 6-й элемент (cid = 6) не отображается в сетке. 4-й элемент выглядит так, как будто он имеет некоторые подэлементы, но расширение этой ветки ничего не показывает. 6-го элемента нигде не найти в дереве (я полагаю, я определил его как подэлемент cid4).jqGrid неправильный формат данных?

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,    
}, 
}); 

ответ

0

Мне кажется, что вы должны добавить key: true свойство определения cid столбца. Вы можете использовать альтернативу (или сделать обе вещи) опцией jsonReader: { id: "cid" }. В случае, когда значение входных данных будет интерпретироваться как идентификатор элемента, и значение от parent_id будет правильным.

см. http://jsfiddle.net/OlegKi/498jhxcg/19/

Смежные вопросы