[xp]자식창에서 부모폼 참조방법
showModeless 에서 parent의 object 참조를 하고 싶습니다.
var rtn;
var newChild;
var MyFrame = this.getOwnerFrame();
newChild = gfn_NewChildFrame(sID, sURL, sArg, nLeft, nTop, nWidth, nHeight, sStyle, sProp);
newChild.style.border = "1px solid blue";
newChild.showtitlebar = false;
return newChild.showModeless(sID, MyFrame, sArg);
위와 같이 함수를 만들고...
showModeless 로 뛰운 팝업화면에서
var objList = parent.components;
for(var i=0;i<objList.length;i++)
{
var sObjType = objList[i]+"";
if( sObjType == "[object Dataset]" )
{
var nRow = dsDataset.addRow();
dsDataset.setColumn(nRow, "CODE", objList[i].name);
dsDataset.setColumn(nRow, "VALUE", objList[i].name);
}
}
이런식으로 부모참에 있는 Dataset의 목록을 빼내오고싶은데..
ShowDebug.xfdl][line:31] length'은(는) null이거나 객체가 필요합니다. 이런식으로 오류가 납니다.
예전에 마이플랫폼에서는 parent 를 쓰면 잘 먹었는데.. XPlatform 에서는 왜 그런지 모르겠습니다.
그리고 아래와 같이 String 으로 parent 의 Dataset Object 를 획득하려고 합니다.
var targetDataset = parent.all[edtDataset.text];
txtDebug.text = targetDataset.saveXML();
이렇게 하면 부모창의 dataset을 참조 할수있는지 문의드립니다.
마이플랫폼 기준으로 사용하다 이번에 처음으로 XPlatform으로 가면서 생각처럼 안돌아가서 질문을 많이 드를것 같습니다. ^^
그럼 수고하세요
원인
처리내용
안녕하세요. 투비소프트 고객지원부 입니다.
팝업창에서 부모창에 접근하는 경우는 parent가 아닌 opener을 이용하여 접근 하실 수 있습니다.
아래와 같이 사용합니다.
var objList = opener.all; //components객체는 invisible objects는 못 가져오므로 all 을 이용하여 가져옵니다.
for(var i=0;i<objList.length;i++)
{
var sObjType = objList[i]+"";
if( sObjType == "[object Dataset]" )
{
var nRow = dsDataset.addRow();
dsDataset.setColumn(nRow, "CODE", objList[i].name);
dsDataset.setColumn(nRow, "VALUE", objList[i].name);
}
}
var targetDataset = opener.all["Ds01"]; //opener.all로 데이터셋을 가져옵니다.
수고하세요.