시트의 조회 관련 함수는 아래와 같습니다.
유형 | 함수명 | 기능설명 |
---|---|---|
기본 조회 | doSearch | ajax 통신을 통해 지정한 URL을 호출하여 리턴된 json을 시트에 로딩합니다. |
페이징 조회 | doSearchPaging | 페이징 조회(cfg:{SearchMode:3 or 4}) 사용 시 해당 페이지에 대한 데이터를 서버에서 조회해서 표시합니다. |
데이터 로드 | loadSearchData | json 데이터(string 혹은 object)를 시트에 로딩합니다. |
1. doSearch 로 조회하기
ajax 통신을 통해 서버로부터 데이터를 받아옵니다.
비동기 형식으로 동작하므로, 데이터 로드 이후에 대한 처리는 onSearchFinish 이벤트에서 로직을 구성하셔야 합니다.
// 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); } });
4. 조회 시점 설정
시트 생성 함수 IBSheet.create()는 비동기 방식으로 동작하기 때문에 생성 후 시트의 기능 함수를 바로 호출 할 때 오류가 발생할 수 있습니다.
//시트 생성 함수 IBSheet.create({ ... }); //비동기적으로 생성됨으로 "sheet"객체가 생성되었는지 알 수 없다.
따라서 시트 생성 후 함수 호출은 onRenderFirstFinish 이벤트에 구현하셔야 합니다.