2012-04-21 2 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의 입력 데이터에 level, isLeaf과 같이 필요한 기타 정보를 포함해야합니다. 모든 노드는 로컬 노드를 보유하기 위해 loaded:true을 가져야합니다.

입력에서 항목의 올바른 순서를 사용하는 것이 중요합니다. 순서는 전체 확장 트리의 항목 순서와 일치해야합니다. 그래서 모든 아이들은 부모를 따라야합니다.

colModel 알 수없는 속성 인 idvisible을 제거해야합니다. the documentation에서 찾을 수있는 지원되는 속성 목록입니다.