2016-09-22 88 views
0

我的服務器返回JSON數據如下:如何將數據加載到的jqGrid的TreeGrid

{ 
    "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'後面的逗號。 (''));'而不是'}});'),空數組'colNames'而不是使用'colNames'和'colModel'的長度相同,不包括'colNames',... – Oleg

回答

0

如果我理解正確的問題,那麼你應該解決colModeljsonReadertreeReader以下幾點:

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

請參見相應的演示:https://jsfiddle.net/OlegKi/ae18ov61/2/。我在數據項目中添加了屬性"level": 1,其中描述了葉子。