http://demo.nexacro.com/EduPlay/_web_/index.html?version=
http://demo.nexacro.com/EduPlay/_web_/index.html?version=
demo.nexacro.com
//폼에 생성되어 있는 오브젝트/컴포넌트 정보를 구하기
this.Button00_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
//all : 컴포넌트 목록, invisible, Object, Bind 정보까지 가지고 있는 속성
var arrObj = this.all;
//컴포넌트의 목록만 가지고 있는 속성
//this.component
var sText = "";
for(var i=0; i<arrObj.length; i++){
//Object와 id값 구하기
sText += arrObj[i] + " : " + arrObj[i].id + "\n";
}
//컨테이너 컴포넌트(Div)에 그려놨던 버튼이나 그리드 등은 형제 취급되기에 찍히지 않는다.
//컴포넌트 밖에 있으면 이름만 부르면 되지만, 컨테이너 컴포넌트 안에 있으면 항상 컨테이너 컴포넌트를 지나쳐야 한다.
this.txt_result.set_value(sText);
};
//컨테이너 컴포넌트의 오브젝트/컴포넌트도 포함해서 정보 구하기
this.Button01_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
//함수를 생성하고 오브젝트를 함수로 받음
this.fn_compList(this);
};
var sText ="";
//다른 컴포넌트를 포함하고 있는 Div나 tab 같은 경우, 안쪽에 컴포넌트가 있는지 확인하고 조건에 따라 다시함수 호출 - 재귀함수
this.fn_compList = function(pObj){
//폼이 아닌 파라미터로 받은 Object를 Form으로 함수를 호출하여 그 안의 컴포넌트 목록 정보를 구한다.
var arrObj = pObj.all;
for(var i=0; i<arrObj.length; i++){
//Object와 id 구하기
sText += pObj.parent + " : " + arrObj[i] + " : " + arrObj[i].id + "\n";
//오브젝트의 원시값
var sType = arrObj[i].valueOf();
//원시값이 Div일 경우 - !!!여기서 분리작업!!!
if(sType == "[object Div]"){
//div를 폼으로 재귀함수 호출
//하위로 담아서
this.fn_compList(arrObj[i].form);
}
//Tab은 없지만 만들어두기
else if(sType == "[object Tab]"){
for(var j=0; j<arrObj[i].tabpages.length; j++){
this.fn_compList(arrObj[i].tabpages[j].form);
}
}
}
this.txt_result.set_value(sText);
}
//문자열을 입력받아 그 문자열을 Object로 처리한 후, 결과를 반환하는 eval 함수가 존재
//하지만 eval 함수는 어떤 코드라도 무조건 실행하기에 보안 문제 발생
//그렇기에 권장하지 않음
//그렇기에 String으로 받은 ObjectID를 eval이 아닌 다른 방법으로 Object 처리하는 방법 구현
this.Button02_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
//Button의 name 구하기
var sID = this.Button02.name;
//!!!구해온 sID를 this.component로 Object화 하기!!!
var objID = this.components[sID];
var sText = sID + " : " + typeof sID + "\n";
sText += objID + " : " + typeof objID;
//String이었던 name이 버튼 obj로 변경된 것 확인
this.txt_result.set_value(sText);
};
'프로그래밍 > Nexacro 17' 카테고리의 다른 글
2022년 3월 2일 화면구성 순서별 정리 필기 (1) - 통화 코드 (0) | 2022.03.03 |
---|---|
2022년 2월 20일 - 공부 정리 (0) | 2022.02.18 |
2022년 2월 15일 - Grid 체크박스 표현과 전체선택 해제 기능 구현 (0) | 2022.02.15 |
2022년 2월 14일 - Grid의 Column과 Cell, Head 클릭시 Sort 구현 (0) | 2022.02.14 |
2022년 2월 13일 - Dataset의 이벤트 처리 순서, 이벤트 발생 멈추기 (0) | 2022.02.13 |
댓글