如何将数据加载到jqGrid Treegrid
How to load data into jqGrid Treegrid
我的服务器returnsJSON数据如下:
{
"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": []
}
]
}
我想以分层树结构显示它,所以我将 jqGrid 配置为 treegrid 模式,如下所示:
$("#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
前缀指定列名。有没有办法在不更改从服务器返回的数据的情况下去掉列名的这个前缀?
如果我对你的问题的理解正确,那么你应该将 colModel
、jsonReader
和 treeReader
修正为以下内容:
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
,它描述了叶子。
我的服务器returnsJSON数据如下:
{
"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": []
}
]
}
我想以分层树结构显示它,所以我将 jqGrid 配置为 treegrid 模式,如下所示:
$("#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
前缀指定列名。有没有办法在不更改从服务器返回的数据的情况下去掉列名的这个前缀?
如果我对你的问题的理解正确,那么你应该将 colModel
、jsonReader
和 treeReader
修正为以下内容:
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
,它描述了叶子。