doSearchPaging (method)

페이징 조회 (cfg SearchMode : 3 or 4 or 5) 전용 메서드입니다.
조회 데이터 JSON의 Total 속성을 통해 전체 데이터 건수를 가져오면, 페이지 단위로 나누어 조회됩니다.
최초 1회 호출하면 이후 페이지 이동, Sort 등은 시트가 자동으로 서버에 요청합니다.
비동기형식으로 동작하므로, 서버 응답의 Total 등을 가공하려면 onReceiveData, Data 배열을 가공하려면 onBeforeDataLoad 이벤트에서 처리하세요.
서버 응답(JSON) 구조와 관련된 상세 내용은 페이징 응답 규격을 참고하세요.
조회 시 자동 포커스 (Cfg)IgnoreFocused, 메시지 표시 (Cfg)SuppressMessage를 참고하세요.

Syntax

void doSearchPaging( url, pageParam, param, reqHeader, method, callback, timeout, sync, strictParse, traditional, restapi, cPage, pageLengthParam, beforeSend, orderByParam );

Parameters

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')

Return Value

none

Example

// 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에서 설정한 건수만큼 조회
  ]
}

Read More

Since

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 인자 추가