실습 jqGrid 버전: CDN 제공하는 v4.6 버전으로 테스트
Nested Set Model
treeReader 구성
- Nested Set 모델을 이용하여 그리드를 구성할 때 기본 treeReader 는 아래와 같다.
treeReader : { level_field: "level", left_field:"lft", right_field: "rgt", leaf_field: "isLeaf", expanded_field: "expanded" }treeReader 는 colModel의 필드를 자동으로 확장시켜 마지막에 추가되고 숨겨진다.
서버에서 반환된 데이터는 트리그리드를 구성하기 위해 필드에 대한 정보를 포함해야 한다.
1004lucifer
Field | Type | Description |
---|---|---|
level_field | number | 이 필드는 요소의 계층 레벨을 정의한다. 일반적으로 root 요소는 레벨 0이며, root의 첫번째 자식은 레벨 1이다. 그리드가 모든 요소를 설정하려면 이 정보가 필요하다. |
left_field | number | 왼쪽 끝의 필드 rowid |
right_field | number | 오른쪽 끝의 필드 rowid |
leaf_field | boolean | 이 필드는 그리드의 leaf(마지막) 요소인것을 정의한다. 이 leaf 요소는 확장/축소 할 수 없으며 다른 이미지가 첨부된다. |
expanded_field | boolean | 로딩중에 요소(element)를 확장할지 결정한다. (기본값: false) 이 요소에 데이터가 없을 수 있지만 데이터셋에서 삭제될수 없다. |
서버에 전송되는 데이터?
- reader가 설정된 이후에 자식노드의 속성을 로드할 때 서버에 요청하는 데이터를 알아야 한다.
- 자동 lading 트리노드의 경우에는 다음과 같은 데이터를 보내며, postData 배열을 확장한다.
postData : { ... nodeid:rc.id, n_left:rc.lft, n_right:rc.rgt, n_level:rc.level, ... }nodeid: 현재 확장된 레코드의 id
n_left: 현재 확장된 row의 왼쪽값
n_right: 현재 확장된 row의 오른쪽값
n_level: 현재 확장된 row의 level 값
* jqGrid v4.6의 문제인지 json 의 경우에만 그런지는 모르겠지만 샘플을 만들 때 colModel에 id가 제일 앞에 있으면 id가 hidden이 되면서 확장/축소 아이콘이 같이 hidden되어져 버리는 증상이 있어 마지막에 id를 넣었다.
추가적인 예제는 참고 링크의 공식문서에 있다.
참고
- http://www.trirand.com/jqgridwiki/doku.php?id=wiki:nested_set_model
댓글
댓글 쓰기