gpt4 book ai didi

json - jqgrid 将 json 数据从服务器加载到树状网格中不显示数据

转载 作者:行者123 更新时间:2023-12-01 11:46:03 25 4
gpt4 key购买 nike

我是 jqGrid 的新手,我已经用本地数据构建了一个 jqGrid treeGrid,一切都很好。但现在我正在尝试对远程 JSON 数据做同样的事情,但我无法获得 treeGrid 显示我的数据。这是 treeGrid conf:

$("#"+subgrid_table_id).jqGrid({ 
url:"sg511e.php?id="+row_id+"&btr="+btr,
datatype:"json",
mType:'POST',
loadui: "disable",
colNames:['id','Prestations'],
colModel:[
{name:'id',index:'id',width:100,hidden:true},
{name:'name',index:'name',width:785,sortable:false}
],
pager: pager_id,
sortname: 'id',
sortorder: "asc",
hiddengrid:true,
gridview: true,
treeGrid:true,
treeGridModel: "adjacency",
treedatatype: 'json',
ExpandColumn: 'name',
jsonReader: {
repeatitems: false,
root: "rows"
},

和 JSON 数据:

{
"page": 1,
"total": 1,
"records": 1,
"rows": [
{
"cell": {
"id": "1",
"name": "ECHANGEUR",
"level": "0",
"parent": "",
"isLeaf": true,
"expanded": false,
"loaded": true
}
},
{
"cell": {
"id": "1_1",
"name": "Intervention Aller sur Site",
"level": "1",
"parent": "1",
"isLeaf": true,
"expanded": false,
"loaded": true
}
},
{
"cell": {
"id": "1_1_1",
"name": "Date et heure d'arrivée sur le site",
"level": "2",
"parent": "1_1",
"isLeaf": false,
"expanded": true,
"loaded": true
}
},
{
"cell": {
"id": "1_1_2",
"name": "Consignation de l'échangeur",
"level": "2",
"parent": "1_1",
"isLeaf": false,
"expanded": true,
"loaded": true
}
}
]
}

我不明白我错在哪里,所以我希望你能提供一些帮助并解释我的错误。提前谢谢了吉和丽

最佳答案

首先你应该修复 JSON 数据:

  • 将根元素中的"parent": ""替换为"parent": "null"
  • 您应该反转 isLeaf 属性的值:将所有 true 值更改为 false 并更改所有 false值为 true
  • 你应该从所有项目中删除 "cell" 部分
  • "records": 1不对应4条数据。我想正确的值应该是 "records": 4,但最好是从网格的选项列表中删除 pager。在任何page设置的情况下,totalrecords都不重要。

您可以进一步简化数据并从 JSON 数据中删除 rows 部分。在这种情况下,我们必须将 jsonReaderroot 属性更改为 root: function (obj) { return obj; }。因此,您可以使用以下简单的 JSON 数据:

[
{
"id": "1",
"name": "ECHANGEUR",
"level": "0",
"parent": "null",
"isLeaf": false,
"expanded": false,
"loaded": true
},
{
"id": "1_1",
"name": "Intervention Aller sur Site",
"level": "1",
"parent": "1",
"isLeaf": false,
"expanded": false,
"loaded": true
},
{
"id": "1_1_1",
"name": "Date et heure d'arrivée sur le site",
"level": "2",
"parent": "1_1",
"isLeaf": true,
"expanded": true,
"loaded": true
},
{
"id": "1_1_2",
"name": "Consignation de l'échangeur",
"level": "2",
"parent": "1_1",
"isLeaf": true,
"expanded": true,
"loaded": true
}
]

The demo展示变化的结果。扩展后的网格如下图所示

enter image description here

我在演示中使用的代码是:

$("#grid").jqGrid({
url: "user2132268.json",
datatype: "json",
colNames: [ 'id', 'Prestations'],
colModel: [
{name: 'id', width: 100, key: true, hidden: true},
{name: 'name', width: 785, sortable: false}
],
sortname: 'id',
sortorder: "asc",
hiddengrid: true,
gridview: true,
treeGrid: true,
treeGridModel: "adjacency",
ExpandColumn: 'name',
ExpandColClick: true,
jsonReader: { repeatitems: false, root: function (obj) { return obj; } },
height: "auto"
});

关于json - jqgrid 将 json 数据从服务器加载到树状网格中不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15204930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com