2011-02-18 6 views
0

OnSelectedIndexChanged 이벤트에서 일부 서버 쪽 데이터 바인딩을 시작하는 DropDownList가 있습니다.ASP.NET : 프로그래밍 방식으로 JavaScript를 사용하여 window.opener에서 서버 쪽 이벤트 실행

<asp:DropDownList ID="ddlGroup" runat="server" 
    AutoPostBack="True" OnSelectedIndexChanged="SelectGroup" /> 

일부 자바 스크립트는 팝업을 엽니 다. 팝업이 채워지고 제출되면 자바 스크립트를 사용하여 오프너 페이지에서 해당 OnSelectedIndexChanged 이벤트를 실행하고 싶습니다. 나는 비슷한 않는 다른 코드 발견 :이 내가 무엇을 찾고 생각

if (window.opener != null) { 
    var cf = window.opener.document.forms['aspnetForm']; 
     if (!cf) { 
      cf = window.opener.document.aspnetForm; 
     } 
     cf.__EVENTTARGET.value = "prAdded"; 
     cf.__EVENTARGUMENT.value = "winClosed"; 
     cf.submit(); 
    } 

을,하지만 난의 EventTarget 및 EVENTARGUMENT 부분에서 무엇을 가야한다, 또는 나는 사람들을 필요로하는 경우에도 확실하지 않다 조금도. ddlGroup에 대한 OnSelectedIndexChanged 이벤트 처리기를 구체적으로 실행하고 싶습니다. 이것이 가능한가/실용적인가요?

2 차 질문 : 팝업에서 서버 측 코드를 실행 한 후 상위 페이지를 새로 고칠 수 있습니까?

답변

1

어쨌든 그렇게 할 수는 있지만 대신 __doPostback()을 사용합니다. 즉, __EVENTTARGET 및 __EVENTARGUMENT가 두 개의 매개 변수로 설정되고 첫 번째 매개 변수가 UpdatePanel의 UniqueID라고 가정하면 해당 UpdatePanel 만 새로 고침됩니다.

이렇게하면 업데이트 패널을 새로 고쳐서 원하는 작업을 수행 할 수 있거나 다시 게시 할 때 해당 값을 확인할 수 있습니다 (Request.Form["__EVENTTARGET"] ...).

+0

감사합니다. 나는 이것을 한 번 발사하고 작동하면 받아 들일 것입니다. –

관련 문제