데이터 조회시 조회 서버 호출 직후 발생하는 이벤트입니다.
doSearch, doSearchPaging, loadSearchData 함수를 통해 가져온 데이터가 시트 내부에서 파싱되기 전에 발생합니다.
onBeforeDataLoad 이벤트 보다 먼저 발생합니다.
doSearch, doSearchPaging 동작 이후 해당 이벤트가 발생할 때,1(true)
를 리턴하면 이후의 데이터 파싱 작업을 수행하지 않고 중단합니다.
onReceiveData:function(paramObject) {
}
or
sheet.bind("onReceiveData" , function(paramObject) {});
Name | Type | Description |
---|---|---|
sheet | object |
데이터를 로딩할 시트 객체 |
data | string |
서버에서 조회된 데이터 |
response | object |
response 객체 |
type | string |
조회/엑셀 여부(Search, EXCEL) |
string
// 조회된 내용에 대한 수정 예시
options.Events = {
onReceiveData: function(evtParam) {
var DATA = evtParam.data; // 조회 결과 데이터
var parseData = JSON.parse(DATA); // string으로 들어오는 data parsing
// 조회된 데이터 일부를 수정한다
/**
* 조회 데이터 구조
* { data: [{}, {}], etc: []}
*/
for (var i = 0; i < parseData.data.length; i++){
var row = parseData.data[i];
// AttrYn 컬럼에 값이 Y 인 경우 ConfirmFinish 컬럼에 "결정완료"를 설정
if (row["AttrYn"] == "Y") {
row["ConfirmFinish"] = "결정완료";
row["CanEdit"] = 0;
}
}
return parseData; // 파싱 후 수정된 데이터 return
}
}
어떤 조회 API를 사용하는가에 따라
onReceiveData
에서 리턴을 사용할 때 넘겨줘야 하는 데이터 구조가 다릅니다.
return
을 사용하는 경우 아래의 데이터 구조를 지켜야만 정상적으로 조회가 완료됩니다.
loadSeacrhData
에서 return 해야하는 데이터 구조 // 객체로 리턴하는 경우
// 배열 구조 데이터 리턴
[
{
"EMP_ID": "08212",
"EMP_NM": "홍길동",
"DEPT_CD": "031"
},
{
"EMP_ID": "07417",
"EMP_NM": "허균",
"DEPT_CD": "120"
},
{
"EMP_ID": "02600",
"EMP_NM": "홍판서",
"DEPT_CD": "405"
}
]
// 문자열로 리턴하는 경우
// 객체 구조를 지닌 문자열로 리턴
`{"data":[{"EMP_ID":"08212","EMP_NM":"홍길동","DEPT_CD":"031"},{"EMP_ID":"07417","EMP_NM":"허균","DEPT_CD":"120"},{"EMP_ID":"02600","EMP_NM":"홍판서","DEPT_CD":"405"}]}`
doSearch
에서 return 해야 하는 데이터 구조 // 객체 구조 데이터 리턴
// 반드시 data 키 안에 배열 구조에 데이터가 들어가야 된다
{
"data": [{
"sCountry": "영국",
"sSatisfaction": 98,
"sCompany": "한화",
"sSaleIncrease": 6579,
"sPrice": 6788476,
"sSaleQuantity": 28426
},
{
"sCountry": "영국",
"sSatisfaction": 69,
"sCompany": "구글",
"sSaleIncrease": 1510,
"sPrice": 2097657,
"sSaleQuantity": 40992
},
{
"sCountry": "중국",
"sSatisfaction": 82,
"sCompany": "한화",
"sSaleIncrease": 2696,
"sPrice": 9591104,
"sSaleQuantity": 13705
},
...
]
}
// 문자열로 리턴하는 경우도 동일하게, 객체 구조를 지닌 문자열로 리턴해야 한다
doSearchPaging
에서 return 해야 하는 데이터 구조 // 아래와 같은 객체 구조 데이터 리턴
// 조회 데이터 전체 건수 정보인 `Total`이 포함되어야 한다
{
"Total":254141 //전체 데이터 건수
"data": [{
"sCountry": "영국",
"sSatisfaction": 98,
"sCompany": "한화",
"sSaleIncrease": 6579,
"sPrice": 6788476,
"sSaleQuantity": 28426
},
{
"sCountry": "영국",
"sSatisfaction": 69,
"sCompany": "구글",
"sSaleIncrease": 1510,
"sPrice": 2097657,
"sSaleQuantity": 40992
},
{
"sCountry": "중국",
"sSatisfaction": 82,
"sCompany": "한화",
"sSaleIncrease": 2696,
"sPrice": 9591104,
"sSaleQuantity": 13705
},
...
]
}
// 문자열로 리턴하는 경우도 동일하게, 객체 구조를 지닌 문자열로 리턴해야 한다
product | version | desc |
---|---|---|
core | 8.0.0.19 | 기능 추가 |
core | 8.0.0.24 | loadSearchData 사용시에도 이벤트 발생하도록 추가 |
core | 8.0.0.26 | type 추가 |
core | 8.1.0.73 | 데이터 파싱 중단 기능 추가 |