ASP.NET2009. 4. 9. 17:06


일단 팝업을 띄울때
window.open(...) 이걸로 띄우면 모달과 달리 리턴 값이 없다
이런 경우 팝업에서
opener 를 사용해서 부모 창의 객체에 접근이 된다.
근데 문제는 부모창이 만약 MasterPage로 되어 있다면 객체 이름이 변경되기에 문제가 생긴다.
그래서~~
그냥 부모쪽에 함수를 하나 만들어 그 함수로 인자를 통해서 던져주면 모든게 해결!

예제를 보자면~

먼저
window.open('../common/SearchPopUp.aspx', '', 'toolbar=no,scrollbars=no,top=200,left=300,width=620,height=400');
이렇게 해서 팝업 띄우고

팝업 내부 자바스크립트로
function doClose() {
        var LINE = '1';
        var PR = '2';
        var MC = '3';
        opener.SetValue(LINE, PR, MC);
        window.close();
    }
이렇게 해서 닫으면서 값을 던진다.
여기서 opener를 통해서 부모창의 함수 SetValue(...) 에 접근...

그럼 다시 부모창에서는

function SetValue(LINE, PR, MC) {
        var strLine = document.getElementById('<%= _txtLine.ClientID%>');
        var strPr = document.getElementById('<%= _txtPr.ClientID%>');
        var strMc = document.getElementById('<%= _txtMc.ClientID%>');

        strLine.value = LINE;
        strPr.value = PR;
        strMc.value = MC;
}

이렇게 필요한곳에 값을 박아 넣어주면 된다.

끝~~~ ㅋ

Posted by 댓거리사랑