2017-06-04 6 views
0

mon environnement: jqGrid 5.1, PHP 5.3jqGrid treegrid Format des données

mes données:

{ 
"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 

}

mon 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" 
     }); 

J'ai une question, que ce soit Le temps de test, les résultats montrent ch AOS, s'il vous plaît, comment modifier cela? enter image description here

Répondre

0

Il est important de comprendre que la mise en œuvre actuelle de l'ancien jqGrid, Guriddo jqGrid JS commerciale (que vous utilisez actuellement) et free jqGrid suppose ordre spécifique des éléments dans les données d'entrée. Les nœuds ou feuilles doivent suivre son nœud parent. Les articles avec des ID de 4 à 6 contiennent la propriété "p_id": "2". Cela signifie qu'un doit déplacer les articles à placer directement après l'article "id": "2" (entre l'article "id": "2" et l'article "id": "3"). Cela devrait régler le problème que vous décrivez.

+0

@ m7lrv: Oui. 'wifi.json' devrait contenir des données correctement triées. – Oleg

+0

@ m7lrv: Vous êtes les bienvenus! Je vous recommande d'examiner le DOM de TreeGrid en utilisant les outils de développement de Chrome/IE. Vous verrez que les nœuds/feuilles sont placés exactement dans le même ordre que si vous incluez les données (comme dans 'wifi.json'). L'ouverture/l'expansion du noeud rend juste visible certaines lignes de la grille (enlever 'display: none' de certains éléments' '). Une telle implémentation est la raison de la restriction existante dans l'ordre des éléments de TreeGrid. – Oleg

+0

@ m7lrv: Vous êtes nouveau sur stackoverflow. Je vous rappelle que vous devriez ["accepter"] (https://meta.stackexchange.com/a/5235/147495) la réponse après que le problème sera résolu. En acceptant, vous obtiendrez vos premiers points de réputation. – Oleg