일단 팝업을 띄울때
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;
}
이렇게 필요한곳에 값을 박아 넣어주면 된다.
끝~~~ ㅋ