IBSheet를 사용하는 경우 동적으로 SaveName 목록을 알아내기를 원할 경우가 있습니다.
다음은 데이터 행이 한줄인 경우와 두줄인 경우 컬럼정보 설정하는 예이다.
/*데이터행이 한줄인 경우 */
DATAS = [
{Type:"Seq", Width:50, Align:"Center", SaveName:"SEQ" },
{Type:"Status", Width:40, Align:"Center", SaveName:"STATUS" },
{Type:"DelCheck", Width:60, Align:"Center", SaveName:"DEL" },
{Type:"Text", Width:200, Align:"Left", SaveName:"TITLE" },
{Type:"Text", Width:100, Align:"Center", SaveName:"NAME" },
{Type:"Text", Width:200, Align:"Left", SaveName:"DOC" }
];
DATAS2 = [
[
{Type:"Seq", Width:50, Align:"Center", SaveName:"SEQ" },
{Type:"Status", Width:40, Align:"Center", SaveName:"STATUS" },
{Type:"DelCheck", Width:60, Align:"Center", SaveName:"DEL" },
],
[
{Type:"Text", Width:200, Align:"Left", SaveName:"TITLE" },
{Type:"Text", Width:200, Align:"Left", SaveName:"NAME" },
{Type:"Text", Width:100, Align:"Center", SaveName:"DOC" }
]
];
우리가 원하는 결과는 "SEQ|STATUS|DEL|TITLE|NAME|DOC" 과 같은 문자열을 얻는 것입니다. 다음 소스는 원하는 결과를 얻을 수 있는 소스입니다.
var saveNames = "";
for(var j=0;j<=mySheet.LastCol();j++){
if(j>0) saveNameList += "|";
saveNames += mySheet.ColSaveName(j);
}
alert(saveNames);
위 소스를 실행해 보면 헤더가 한줄인 IBSheet인 경우에는 의도한 대로 "SEQ|STATUS|DEL|TITLE|NAME|DOC" 얻을 수 있습니다. 하지만, 헤더가 2줄 이상인 IBSheet의 경우에는 첫번째 줄의 SaveName만 얻을 수 있습니다. 즉, "SEQ|STATUS|DEL"
이번에는 헤더 행수와 관계없이 모든 SaveName을 얻을 수 있도록 수정해 보겠습니다.
var saveName = "";
for(var i=0;i<mySheet.HeaderRows();i++){
for(var j=0;j<=mySheet.LastCol();j++){
if((i==0 && j>0) || i>=1) saveNames += "|";
saveNames += mySheet.GetCellProperty(i, j, "SaveName");
}
}
alert(saveNames);
이제는 데이터행의 갯수와 상관없이 "SEQ|STATUS|DEL|TITLE|NAME|DOC" 을 얻을 수 있습니다.
'프로그램 > IBSheet7' 카테고리의 다른 글
GetSaveData() - IBSheet를 통한 Ajax 처리 (0) | 2014.07.09 |
---|---|
FontUnderline 사용 (0) | 2014.07.02 |
Tree 기능 사용시 JSON 데이터 구조 (0) | 2014.06.21 |