# SearchMode (cfg)

> 시트의 데이터 조회 모드를 설정합니다.

### Type

`number`

### Options

Value | Mode | Description
--- | --- | ---
`0` | FastLoad 모드 (대용량 처리 방식) | `ibsheet8`에서 새롭게 추가된 조회 방식으로 고정된 테이블 객체 안에서 스크롤 시 각 셀의 값만 변경하는 형태로 대량의 데이터를 핸들링하기 우수한 모드입니다. 해당 기능을 사용시 각 행의 높이는 모두 동일해야 하며, (Appendix)기능에 제약사항이 있습니다.
`1` | ClientPaging | 조회된 데이터를 내부적으로 나누어 페이지 네비게이션을 통해 보여주는 기능입니다. (Cfg)PageLength 설정값만큼 데이터를 나누어 화면에 표시됩니다. (Method)updateClientPaging 함수를 이용해서 동적으로 페이지의 개수를 변경하고 재계산할 수 있습니다. 페이지 네비게이션은 InfoRowConfig에서 사용할 수 있습니다.
`2` | LazyLoad(default) | 가장 일반적인 방식으로 사용자가 세로 스크롤을 움직일때 마다, 해당하는 데이터를 테이블로 구성하는 모드입니다. 트리나 그룹등 사용에 제한이 없으며, 각각의 행의 높이가 서로 달라도 사용이 가능합니다.
`3` | ScrollAppend | 전체 데이터를 한 번에 가져오는게 아니라, 최초 조회시 1페이지에 해당하는 데이터만 조회됩니다. 그리고 사용자가 세로 스크롤을 내려, 스크롤이 하단에 닫는 순간 기존에 (Method)doSearchPaging에서 호출한 URL을 다시 호출하고 다음 페이지에 해당하는 데이터를 가져와 시트의 기존 데이터 아래 append하는 형식의 조회 모드입니다. 조회시 반드시 (Method)doSearchPaging 함수를 통해 조회해야 하며, 서버에서는 시트로 부터 넘어오는 페이지 정보(ibpage=2,3,4…)에 따라 페이징쿼리를 구성하여 각 페이지별 데이터를 리턴해야 합니다. 조회 데이터에 Total 속성을 추가하여 디비에 존재하는 전체 record 수를 리턴하면 이를 기준으로 스크롤을 내릴때 마다 다음 페이지에 해당하는 데이터를 append하고 Total값과 전체 데이터가 동일해지면 더 이상 서버를 호출하지 않습니다. 추가되는 데이터는 내부적으로 `SearchMode: 0(FastLoad)` 형식으로 처리됩니다. 따라서 Lines나 Img 등의 타입은 사용하실 수 없습니다.
`4` | ServerPaging | 페이지 네비게이션이 표시되는 것은 1번 `ClientPaging`과 유사하나, 페이지를 이동시 해당 페이지에 대한 데이터를 서버에서 조회하여 표시하는 모드입니다. 조회시 반드시 (Method)doSearchPaging 함수를 통해 조회해야 합니다. 조회 데이터에 Total 속성을 통해 디비에 존재하는 전체 record 수를 리턴하면 이를 기준으로 페이지 네비게이션을 구성하여 보여줍니다. 네비게이션을 클릭하여 페이지 이동시 (Method)doSearchPaging호출 시 호출한 URL이 호출되며 페이지 번호가 `ibpage=3` 식으로 같이 전송됩니다.

### Example

    options.Cfg = {SearchMode: 0, ...};

### Read More

- InfoRowConfig cfg
- PageLength cfg
- doSearchPaging method
- updateClientPaging method

### Since

product | version | desc
--- | --- | ---
core | 8.0.0.0 | 기능 추가