시트의 조회 관련 함수는 아래와 같습니다.
유형 | 함수명 | 기능설명 |
---|---|---|
기본 조회 | doSearch | ajax 통신 모듈이 포함되어 있으며, response로 받은 데이터를 자동으로 시트에 로딩 합니다. cfg:{SearchMode : 0 or 1 or 2} 설정시 이 함수를 이용합니다. |
페이징 조회 | doSearchPaging | ajax 통신 모듈이 포함되어 있으며, response로 받은 데이터를 자동으로 시트에 로딩 합니다. cfg:{SearchMode : 3 or 4 or 5} 설정시 이 함수를 이용합니다. |
데이터 로드 | loadSearchData | ajax 통신은 다른 모듈(Axios, jquery 등)에서 처리 하며, response로 받은 데이터를(string 혹은 object) 시트에 로딩 합니다. cfg:{SearchMode : 0 or 1 or 2} 설정시 이 함수를 이용합니다. |
1. doSearch 로 조회하기
response로 받은 데이터를 자동으로 시트가 바인딩 합니다.
비동기 형식으로 동작하므로, 데이터 로드 이후 구현해야 하는 로직이 있다면 반드시 이벤트에서 해야 합니다.
// GET 방식으로 데이터 조회 sheet.doSearch("./insaAppMain.do", "dept_cd=031&position_cd=A0", "GET"); // POST 방식으로 데이터 조회 var opt = { url: "./insaAppMain.do", param: {"dept_cd": 031, "position_cd": "A0"}, method: "POST", reqHeader: {"Content-Type":"application/json"} }; sheet.doSearch(opt);
2. doSearchPaging 로 조회하기
페이징 조회(cfg:{SearchMode:3 or 4}) 시 반드시 doSearchPaging을 사용해야 합니다.
최초 조회데이터 JSON에 Total 속성을 통해 전체 데이터 건수를 갖고 오면, 한 페이지에 표시될 데이터 갯수인 PageLength 만큼 페이지를 나누어 조회 됩니다.
//SearchMode가 3이거나 4인 경우 조회 함수 var opt = { "url":"/cust/getCustInfo.do", "param":"custId=92123&empId=24342", "method":"POST", "callback":function (rtn) { var rtnData = JSON.parse(rtn.data); alert("전체 데이터 건수 :" + rtnData["Total"]); } }; sheet.doSearchPaging(opt); //조회 데이터 예시 { "Total":254141 //전체 데이터 건수 "Data":[ {},...,{} //PageLength에서 설정한 건수만큼 조회 ] }
페이지 네비게이션의 페이지 번호가 변경되거나 스크롤 위치가 이동하여 페이지 번호가 변경되는 경우, ibpage의 파라미터는 자동으로 페이지 번호를 붙여 호출됩니다.
3. loadSearchData 로 조회하기
ajax 통신을 통해 받아온 json형식의 데이터를 시트에 로드합니다.
비동기 형식으로 동작하므로, 데이터 로드 이후에 대한 처리는 onDataLoad 이벤트에서 로직을 구성하셔야 합니다.
//jquery를 이용한 ajax 통신 $.ajax({ url: "./data.jsp", param: "edate=19950101&position=C1", success: function (rtnData) { //서버에서 가져온 json데이터를 로딩 sheet.loadSearchData(rtnData); } });