2011-12-16 5 views
1

저는 사용자 정의 컨트롤을 사용하고 있는데 질문을하는 팝업을 호출해야하며 사용자 컨트롤에 응답 (true 또는 false)을 보내야합니다. 팝업을 호출합니다. 클라이언트 측에서 값을 저장하는 숨겨진 필드를 선언 했으므로 코드 뒤에 액세스하여 추가 코드를 실행할 수 있습니다. 함수가 window.opener 라인을 칠 때 나는 오류를 얻고있다Asp.Net은 자바 스크립트의 팝업 창에서 값을 얻습니다.

<script type="text/javascript"> 
     function confirmNoCallList() { 
      debugger; 
      var resp = confirm("¿Seguro/a que desea agregar a este subscriptor a la 
         lista de 'No Llamar'?"); 

      window.opener.document.getElementById('hfAddToNoCallList').value = resp; 
     } 
</script> 


<ajax:TabContainer ID="tbcMyProfile" runat="server" ActiveTabIndex="0" Width="500px"> 
     <ajax:TabPanel ID="tbpInfoCta" runat="server" HeaderText="Información de mi 
          Cuenta"> 
      <ContentTemplate> 
       <asp:HiddenField ID="hfAddToNoCallList" runat="server" /> 
. 
. 
. 

ASP.Net : 나는 다음과 같은 코드가 있습니다. 이 방법을 올바르게 수행하는 방법에 대한 아이디어가 있습니까?

+0

무엇 오류가 발생합니까? – jrummell

답변

1

당신은 런타임에 동적 ClientID를 얻거나 다음을 찾을 수있는 기능과 인수에 전달해야합니다 :

document.getElementById('<%= hfAddToNoCallList.ClientID"%>').value = resp; 

또는

function confirmNoCallList(hiddenField) { 
     debugger; 
     var resp = confirm("¿Seguro/a que desea agregar a este subscriptor a la 
        lista de 'No Llamar'?"); 

     document.getElementById(hiddenField).value = resp; 
    } 
+0

감사합니다 !! 두 가지 방법 모두 제가 찾고있는 것과 정확히 같습니다. –

1

window.openerwindow.open(...)이라는 브라우저 창에 대한 참조를 제공하여 현재 창을 만듭니다. window.open을 호출하지 않으면 opener는 null이됩니다.

게시 한 코드 스 니펫에서 JavaScript 및 숨김 필드는 같은 문서에 있습니다. 라인에서 window.opener.를 제거하십시오 window.opener.document.getElementById ...

+0

이렇게하면 다음 오류가 발생합니다. 'value'속성 값을 설정할 수 없습니다 : 개체가 null이거나 정의되지 않았습니다. –

관련 문제