Translate

[jqGrid] Adjacency Model 설명







실습 jqGrid 버전: CDN 제공하는 v4.6 버전으로 테스트



Adjacency Model



treeReader 구성
 - adjacency 모델을 이용하여 treeReader 구성 시 기본값은 다음과 같다.
treeReader = {
   level_field: "level",
   parent_id_field: "parent", // then why does your table use "parent_id"?
   leaf_field: "isLeaf",
   expanded_field: "expanded"
}
treeReader 는 colModel의 필드를 자동으로 확장시켜 마지막에 추가되고 숨겨진다.
서버에서 반환된 데이터는 트리그리드를 구성하기 위해 필드에 대한 정보를 포함해야 한다.

1004lucifer

Nested Set 모델과의 유일한 차이점은 left_field, right_field 가 parent_id_field로 대체된다는 것이다.
이 요소는 레코드에 parent_id_field라는 id를 가진 부모가 있으며, 부모 id가 NULL이면 해당 요소는 root이다.




FieldTypeDescription
level_fieldnumber이 필드는 요소의 계층구조의 레벨을 정의한다.
일반적으로 root요소는 0이며, 첫번째 자식은 1이다.
그리드가 모든 요소를 설정하려면 이 정보가 필요하다.
parent_id_fieldmixed레코드에 parent_id_field 라는 id를 가진 부모가 있는지 여부를 나타낸다.
값을 null 로 셋팅 시 root 요소가 된다.
leaf_fieldboolean이 필드는 그리드의 leaf(마지막) 요소인것을 정의한다.
이 leaf 요소는 확장/축소 할 수 없으며 다른 이미지가 첨부된다.
expanded_fieldboolean로딩중에 요소(element)를 확장할지 결정한다. (기본값: false)
이 요소에 데이터가 없을 수 있지만 데이터셋에서 삭제될수 없다.



서버에 전송되는 데이터?
 - reader가 설정된 이후에 자식노드의 속성을 로드할 때 서버에 요청하는 데이터를 알아야 한다.
 - 자동 lading 트리노드의 경우에는 다음과 같은 데이터를 보내며, postData 배열을 확장한다.
postData : {
   ...
   nodeid:rc.id,
   parentid:rc.parent_id,
   n_level:rc.level   
   ...
}
nodeid: 현재 확장된 레코드의 id
parentid: 현재 확장된 row의 parent_id 값
n_level: 현재 확장된 row의 level 값







추가적인 예제는 참고 링크의 공식문서에 있다.

참고
 - http://www.trirand.com/jqgridwiki/doku.php?id=wiki:adjacency_model



댓글