페이징 조회 (cfg SearchMode :
3or4or5) 전용 메서드입니다.
조회 데이터 JSON의Total속성을 통해 전체 데이터 건수를 가져오면, 페이지 단위로 나누어 조회됩니다.
최초 1회 호출하면 이후 페이지 이동, Sort 등은 시트가 자동으로 서버에 요청합니다.
비동기형식으로 동작하므로, 서버 응답의 Total 등을 가공하려면 onReceiveData, Data 배열을 가공하려면 onBeforeDataLoad 이벤트에서 처리하세요.
서버 응답(JSON) 구조와 관련된 상세 내용은 페이징 응답 규격을 참고하세요.
조회 시 자동 포커스 (Cfg)IgnoreFocused, 메시지 표시 (Cfg)SuppressMessage를 참고하세요.
void doSearchPaging( url, pageParam, param, reqHeader, method, callback, timeout, sync, strictParse, traditional, restapi, cPage, pageLengthParam, beforeSend, orderByParam );
| Name | Type | Required | Description |
|---|---|---|---|
| url | string |
필수 | ajax를 통해 호출할 url |
| pageParam | string |
선택 | 서버로 전송할 페이지 변수 (default: 'ibpage') |
| param | string | object |
선택 | 서버로 전송할 조회 조건 파라미터 |
| reqHeader | object |
선택 | 서버 전송시 request header에 정의할 내용 ex : {"callBy":"ibsheetObject","method":"doSearchPaging"} |
| method | string |
선택 | GET/POST 선택 (default: 'GET') |
| callback | function |
선택 | 조회 후 호출할 콜백 함수 |
| timeout | number |
선택 | 서버 통신 최대 대기 시간 (단위: 초(second), default: 60) |
| sync | number |
선택 | 동기 조회 여부. 비동기일 경우 연속으로 호출시 이전 조회가 종료되지 않으면 이후의 조회는 무시됩니다. 연속으로 호출해야 되고, 반드시 모든 조회가 완료되어야 한다면 동기 조회 모드를 사용해야 합니다.0:비동기 방식 (default)1:비동기 순차 처리 방식2:동기 방식 |
| strictParse | boolean |
선택 | JSON 파서 선택0(false):유연한 파서 사용 (default) — 여분의 콤마, 프로퍼티 이름 쌍따옴표 생략 허용1(true):브라우저 JSON.parse() 사용 (약 5배 빠르나 5만건 이내에서는 차이 미미) |
| traditional | boolean |
선택 | 서버로 배열 param 전송 시 형식 설정param: {"data": [1, 2]} 일 때0(false): data[]=1&data[]=2 (default)1(true): data=1&data=2 |
| restapi | boolean |
선택 | 페이지 URL 주소 형식이 REST API 주소형식에 맞게 변경되도록 하는 설정0(false):페이지 URL 주소 변경 기능 사용 안함 (default)1(true):페이지 URL 주소 REST API 주소형식에 맞게 변경 기능 사용주의 : GET 방식으로 보낼 경우 pageParam을 제외한 다른 파라미터들은 전송되지 않음 ex) /userInfo/users/2 |
| cPage | number |
선택 | 조회 시 처음 보여질 페이지 번호 (1부터 시작) |
| pageLengthParam | string |
선택 | 서버로 전송할 pageLength 변수 (default: 'ibpagelength') |
| beforeSend | function |
선택 | 조회 전 호출할 함수1(true) 값을 리턴 시 조회가 취소 |
| orderByParam | string |
선택 | 서버로 전송할 소팅 정보 파라미터 이름을 변경하고 싶은 경우 설정합니다. (default: 'iborderby') |
none
// SearchMode 3, 4, 5 에서 사용
options.Cfg = {
SearchMode: 4,
PageLength: 100
};
// Form Data 방식 (쿼리스트링)
var opt = {
"url":"/cust/getCustInfo.do",
"param":"custId=92123&empId=24342",
"method":"POST",
"beforeSend":function (rtn) {
console.log(rtn.sheet); // 시트 객체
},
"callback":function (rtn) {
var rtnData = JSON.parse(rtn.data);
alert("전체 데이터 건수 :" + rtnData["Total"]);
}
};
sheet.doSearchPaging(opt);
// Form Data 방식 (object)
sheet.doSearchPaging({
url: "/cust/getCustInfo.do",
param: { custId: "92123", empId: "24342" },
method: "POST"
});
// → Form Data: custId=92123&empId=24342&ibpage=1&ibpagelength=50
// JSON Payload 방식 (object + reqHeader)
sheet.doSearchPaging({
url: "/cust/getCustInfo.do",
param: { custId: "92123", empId: "24342" },
reqHeader: { "Content-Type": "application/json" },
method: "POST"
});
// → Request Payload: {"custId":"92123","empId":"24342","ibpage":1,"ibpagelength":50}
// 인증 토큰 전송
sheet.doSearchPaging({
url: "/cust/getCustInfo.do",
param: { custId: "92123" },
method: "POST",
reqHeader: { "Authorization": "Bearer eyJhbGciOiJIUzI1..." }
});
//조회 데이터 예시
{
"Total":254141, //전체 데이터 건수
"Data":[
{},...,{} //PageLength에서 설정한 건수만큼 조회
]
}
| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |
| core | 8.0.0.5 | timeout 인자 추가 |
| core | 8.0.0.6 | sync 인자 추가 |
| core | 8.0.0.7 | strictParse, traditional, restapi 인자 추가 |
| core | 8.0.0.20 | cPage 인자 추가 |
| core | 8.1.0.41 | pageLengthParam 인자 추가 |
| core | 8.1.0.49 | beforeSend 인자 추가 |