2012-04-21 10 views
0

配列データでTreeGrid(jqGrid)をロードしようとしています。しかし、何らかの形で階層が現れていません。データはフラットな構造でのみ表示されます。jQuery - jqGrid - 配列データを含むTreeGridをロードする

コード:

$("#list").jqGrid({ 
    treeGrid: true, 
    treeGridModel: 'adjacency', 
    ExpandColumn: 'label', 
    ExpandColClick: true, 
    datatype: 'local', 
    colNames:['Parent','Org','cd'], 
    colModel:[ 
     {name:'parent',id:'parent',index:'parent', width:250, hidden: true, 
      align: 'left', sortable: false, classes: 'indeling', title: false }, 
     {name:'label',id:'label',index:'label', width:250,align: 'left', 
      sortable: false, classes: 'indeling', title: false, visible: false}, 
     {name:'cd',id:'cd',index:'cd', width:100,align: 'left', sortable: false, 
      classes: 'indeling', title: false,visible: false } 
    ], 
    rowNum: 20000, 
    viewrecords: true, 
    height: "100%", 
    treeIcons: { leaf: 'ui-icon-document-b' }, 
    hoverrows: false 
}); 

その後、私はグリッドに、配列内の行を追加します。配列の

$('#list').jqGrid('addRowData',0,array[0]); 
$('#list').jqGrid('addRowData',1,array[1]); 

構造:

array=[{parent:"",label:"1",cd:"32"},{parent:"1",label:"2",cd:"42"}] 

誰でも助けることができますか?

答えて

0

質問の回答はhereです。

addRowDataを使用しないでください。速度が遅く、ほとんど誤って使用されます。親ノードの場合は、parent: "null"またはparent: nullを使用する必要があります。さらに、TreeGridの入力データには、levelisLeafのように必要なその他の情報を含める必要があります。すべてのノードはノードをローカルに保持するためにloaded:trueを持つ必要があります。

入力の項目の正しい順序を使用することが重要です。順序は、完全に展開されたツリー内の項目の順序に対応する必要があります。したがって、すべての子供は親に従うべきです。

colModelの不明なプロパティ(idおよびvisibleなど)を削除する必要があります。あなたはthe documentationに見つけることができますsuportedプロパティのリスト。

関連する問題