실습 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이다.
Field | Type | Description |
---|---|---|
level_field | number | 이 필드는 요소의 계층구조의 레벨을 정의한다. 일반적으로 root요소는 0이며, 첫번째 자식은 1이다. 그리드가 모든 요소를 설정하려면 이 정보가 필요하다. |
parent_id_field | mixed | 레코드에 parent_id_field 라는 id를 가진 부모가 있는지 여부를 나타낸다. 값을 null 로 셋팅 시 root 요소가 된다. |
leaf_field | boolean | 이 필드는 그리드의 leaf(마지막) 요소인것을 정의한다. 이 leaf 요소는 확장/축소 할 수 없으며 다른 이미지가 첨부된다. |
expanded_field | boolean | 로딩중에 요소(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
댓글
댓글 쓰기