3

私はjqGridの初心者で、ローカルデータを使用してjqGrid treeGridを構築しましたが、すべて問題ありません。しかし、今はリモートJSONデータで同じことをしようとしていますが、treeGridにデータを表示させることができません。これがtreeGridconfです:

$("#"+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
            }
        }
    ]
}

何が間違っているのかわかりませんので、助けを借りて私のエラーを説明していただければ幸いです。よろしくお願いしますJiheL

4

1 に答える 1

5

まず、JSONデータを修正する必要があります。

  • ルート要素でに"parent": ""置き換えます"parent": "null"
  • isLeafプロパティの値を反転する必要があります。すべてのtrue値をに変更し、すべての値をにfalse変更します。falsetrue
  • "cell"すべてのアイテムからパーツを削除する必要があります
  • "records": 1は4つのデータに対応していません。正しい値はであるはずですが、グリッドのオプションのリストから"records": 4を削除するのが最善です。pagerいずれかの設定の場合pagetotalまたはrecordsは重要ではありません。

データをさらに単純化し、rowsJSONデータからその部分を削除できます。rootのプロパティをjsonReaderに変更する必要がある場合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
    }
]

デモは、変更の結果を示しています。グリッドを拡張すると、下の図のようになります

ここに画像の説明を入力してください

デモで使用したコードは次のとおりです。

$("#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"
});
于 2013-03-04T16:22:53.580 に答える