2016-09-22 7 views
0

내 서버는 JSON 데이터를 반환 :

{ 
    "pageIndex": 1, 
    "pageSize": 100, 
    "pages": 290, 
    "total": 2891, 
    "nodes": [ 
    { 
     "data": { "id": 1, "name": "Node 1", "leaf": false }, 
     "errors": [] 
    }, 
    { 
     "data": { "id": 2, "name": "Node 2", "leaf": true, "parentId": 1 }, 
     "errors": [] 
    } 
    ] 
} 

내가 계층 적 트리 구조로이를 표시하고자하는, 그래서 다음과 같이 내가 TreeGrid에 모드에있는 jqGrid를 구성한 :

$("#tree").jqGrid({ 
    url: "/tree", 
    datatype : "json", 
    colModel : [{ 
    name: "data.id", 
    key: true 
    }, { 
    name: "data.name" 
    }], 
    colNames : [], 
    jsonReader : { 
    page : 1, 
    records : "total", 
    repeatitems : false, 
    root : "nodes", 
    total : 1 
    }, 
    treeGrid : true, 
    treeGridModel : "adjacency", 
    tree_root_level : 1, 
    ExpandColumn : "data.id", 
    ExpandColClick : true, 
    treeReader : { 
    leaf_field : "leaf", 
    parent_id_field : "data.parentId" 
    } 
}); 

괜찮습니다. 그러나 열 이름은 data 접두어로 지정해야합니다. 서버에서 반환 된 데이터를 변경하지 않고이 접두사를 제거하는 방법이 있습니까? 내가 제대로 문제를 이해한다면

+0

올바른 데이터와 사용하는 코드를 포함시켜주십시오. 당신은 다음과 같이 씁니다 : "이것은 잘 작동합니다.", 그러나 그것은 많은 구문 오류 때문에 할 수 없습니다. 데이터에 구문 오류가 있습니다.''pageSize ': 100' 다음에 쉼표가없는 것을보십시오. '(} #) '대신'$ { "# tree"}'대신''{}}}''대신''''''''''''''''' 'colNames'와 같은 길이의'colNames'와'colModel'을 사용하는 대신'colNames'를 사용합니다. – Oleg

답변

0

당신은 다음과 colModel, jsonReadertreeReader를 해결해야합니다 https://jsfiddle.net/OlegKi/ae18ov61/2/ :

colModel : [{ 
    name: "id", 
    key: true 
}, { 
    name: "name" 
}], 
jsonReader : { 
    cell: "data", 
    root : "nodes" 
}, 
treeReader : { 
    parent_id_field: "parentId", 
    leaf_field : "leaf" 
} 

은 해당 데모를 참조하십시오. 나는 리프를 설명하는 데이터 항목에 추가로 "level": 1 속성을 추가했습니다.