2017-06-04 5 views
0

meiner Umgebung: jqGrid 5.1, PHP 5.3jqGrid treegrid Datenformat

meine Daten:

{ 
"values": [ 
    { 
     "id": "1", 
     "mac": "64:09:80:57:A6:EE", 
     "username": "WIFI-DQ", 
     "company": "Xiaomi Communications Co Ltd", 
     "isLeaf": false, 
     "expanded": true, 
     "level":0, 
     "p_id": "0" 
    }, 
    { 
     "id": "2", 
     "mac": "F0:B4:29:5A:B5:0F", 
     "username": "1001", 
     "company": "Tenda Technology Co., Ltd.", 
     "isLeaf": false, 
     "expanded": true, 
     "level":0, 
     "p_id": "0" 
    }, 
    { 
     "id": "3", 
     "mac": "64:09:80:57:A6:EF", 
     "username": "WIFI-DQ_5G", 
     "company": "TP-LINK TECHNOLOGIES CO.,LTD.", 
     "isLeaf": false, 
     "expanded": true, 
     "level":0, 
     "p_id": "0" 
    }, 
    { 
     "id": "4", 
     "mac": "00:1C:BF:8B:DF:8E", 
     "username": "QCL16", 
     "company": "Intel Corporate", 
     "isLeaf": true, 
     "expanded": true, 
     "level":1, 
     "p_id": "2" 
    }, 
    { 
     "id": "5", 
     "mac": "98:2F:3C:07:56:36", 
     "username": "admin23", 
     "company": "Xiaomi Communications Co Ltd", 
     "isLeaf": true, 
     "expanded": true, 
     "level":1, 
     "p_id": "2" 
    }, 
    { 
     "id": "6", 
     "mac": "34:80:B3:FC:3F:0B", 
     "username": "Iphone", 
     "company": "Iphone", 
     "isLeaf": true, 
     "expanded": true, 
     "level":1, 
     "p_id": "2" 
    }, 
    { 
     "id": "7", 
     "mac": "35:85:B3:DC:3F:0B", 
     "username": "Lenovo PC", 
     "company": "Iphone", 
     "isLeaf": true, 
     "expanded": true, 
     "level":1, 
     "p_id": "3" 
    } 
], 
"start": 0, 
"limit": 15, 
"end": 15, 
"pageNumber": 1, 
"totalSize": 7, 
"totalPages": 1 

}

mein html:

$('#tree').jqGrid({ 
      "url":"wifi.json", 
      "styleUI" : 'Bootstrap', 
      "colModel":[ 
       { 
        "name":"id", 
        "index":"id", 
        "sorttype":"int", 
        "key":true, 
        "hidden":true, 
        "width":50 
       },{ 
        "name":"username", 
        "index":"username", 
        "sorttype":"string", 
        "label":"Name", 
        "width":170, 
        formatter: function (value, grid, rows, state) { 
         return "test:"+value; 
        } 
       },{ 
        "name":"mac", 
        "index":"mac", 
        "sorttype":"string", 
        "hidden":false, 
        "width":50 
       } 
      ], 
      "width":"600", 
      "hoverrows":false, 
      "viewrecords":false, 
      "gridview":true, 
      "height":"auto", 
      "loadonce":true, 
      "rowNum":100, 
      "scrollrows":true, 
      // enable tree grid 
      "treeGrid":true, 
      // which column is expandable 
      "ExpandColumn":"username",//点击那一列触发展开,收缩操作 
      // datatype 
      "treedatatype":"json", 
      "treeIcons":{plus:'glyphicon-triangle-right',minus:'glyphicon-triangle-bottom',leaf:''},//plus:折叠起来的图标,minus:展开的图标,leaf:没有子节点了的图标 
      // the model used 
      "treeGridModel":"adjacency", 
      "tree_root_level":0, 
      // configuration of the data comming from server 
      "treeReader":{ 
       //"left_field":"id", 
       //"right_field":"id", 
       "level_field":"level",//当前菜单的级别1级菜单,2级菜单.... 
       "parent_id_field": "p_id",//数据里面的父级节点的名称 
       //"leaf_field":"isLeaf", 
       "expanded_field":"expanded",//是否展开子节点 
       //"loaded":"loaded", 
       "icon_field":"icon" 
      }, 
      jsonReader: { 
       root: "values", 
       repeatitems : false 
      }, 
      "sortorder":"asc", 
      "datatype":"json" 
     }); 

Ich habe eine Frage, ob die Daten müssen sortiert werden, um es anzuzeigen? Testzeit, die Ergebnisse zeigen, ist ch AOS, bitte, wie ändert man das? enter image description here

Antwort

0

Es ist wichtig, dass die aktuelle Umsetzung der alten jqGrid, kommerzielle Guriddo jqGrid JS (die Sie zur Zeit verwenden) zu verstehen und free jqGrid spezifische Reihenfolge der Elemente in den Eingangsdaten annehmen. Die Knoten oder Blätter müssen nach ihrem übergeordneten Knoten folgen.

Die Artikel mit den IDs von 4 bis 6 enthalten die Eigenschaft "p_id": "2". Es bedeutet, dass man die Artikel verschieben muss, um dort direkt nach den Artikel "id": "2" (zwischen dem Artikel "id": "2" und dem Artikel "id": "3") zu platzieren. Es sollte das Problem beheben, das Sie beschreiben.

+0

@ m7lrv: Ja. 'wifi.json' sollte korrekt sortierte Daten enthalten. – Oleg

+0

@ m7lrv: Gern geschehen! Ich empfehle Ihnen, das DOM von TreeGrid mit den Developer Tools von Chrome/IE zu untersuchen. Sie werden sehen, dass die Knoten/Blätter genau in der gleichen Reihenfolge angeordnet sind, wie Sie die Daten einschließen (wie in 'wifi.json'). Das Öffnen/Erweitern des Knotens macht nur einige Zeilen des Gitters sichtbar (entferne 'display: none' von einigen '' Elementen). Eine solche Implementierung ist der Grund der bestehenden Einschränkung in der Reihenfolge der Elemente von TreeGrid. – Oleg

+0

@ m7lrv: Sie sind neu im Stackoverflow. Ich erinnere Sie daran, dass Sie die Antwort ("accept") (https://meta.stackexchange.com/a/5235/147495) beantworten sollten, nachdem das Problem gelöst ist. Durch die Annahme erhalten Sie Ihre ersten Rufpunkte. – Oleg