4

여러분,jQuery 팝업 대화 상자가있는 ASP.NET : 닫는 대화 상자에 다시 게시하는 방법

다소 복잡한 사이트에서 작업하고 있습니다. 일부 컨트롤이 포함 된 업데이트 패널이 있습니다. 컨트롤 중 하나를 클릭하면 jQuery 대화 상자가 열립니다.

대화 상자가 닫히면 업데이트 패널에 신호를 보내 신호를 보내려고합니다. 그렇게하려면 업데이트 패널에 다시 게시해야합니다.

대화 상자에 연결할 수있는 편리한 콜백 이벤트가 있다는 것을 알고 있습니다. 하지만 여기에 문제가 있습니다. 대화 상자를 조작하는 자바 스크립트는 모두 별도의 .js 파일에 있습니다. 나는 그것을 계속 분리하고 싶다. 따라서 포스트 백을 수행하는 코드는 .js 파일에 있거나 .js 파일의 일부 메서드에 매개 변수로 주입됩니다.

어떻게하면됩니까? 그리고 .js 파일 메서드에 무엇을 전달할 것인가?

감사합니다.

+0

후킹; 그런 다음 그 함수들을 연결 시키십시오, 그러나 그것들을 먼저 확인하십시오 : if (typeof (cbFncClose) === 'function') cbFncClose(); – rkw

답변

3

최근에는이 문제를 해결해야했습니다. 나는이 문제를 돕기위한 일반적인 기능을 가지고있다.

  • UpdatePanel 내에서 숨겨진 asp:button을 넣어 또는 외부와 AsyncPostBackTrigger로 설정합니다.
  • 필요할 경우 ItemDataBound에서 js 함수를 호출하고 asp:button을 전달합니다.
  • js 함수는 "OK"또는 설정 한 값을 buttonTxt으로 전달한 버튼에서 click 이벤트를 호출합니다. 버튼을 클릭합니다.
  • 버튼이 UpdatePanel 안에 있으면 UpdatePanel.Update을 자동으로 처리하거나 butHidden_Click 안에 Update을 호출 할 수 있습니다.

마크 업 :

<asp:UpdatePanel runat="server" ID="UpdatePanel1"> 
    <ContentTemplate> 
    <asp:button id="btnHidden" style="display:none" runat="server" onclick="btnHidden_Click"/> 
    </ContentTemplate> 
</asp:UpdatePanel> 

스크립트 : 당신이 필요로하는 대화 상자에서 각 방법에 대한 콜백 함수를받을 수있는 JS 파일의 기능을 확장 할 수 있습니다

function showjQueryUIDialogOkBtnCallback(buttonToClick, dialogSelector, buttonTxt, isModal, width, height) 
    { 
     var buttonOpts = {}; 
     buttonOpts[buttonTxt] = function() { 
      $("#" + buttonToClick).trigger('click'); 
     }; 

     buttonOpts['Cancel'] = function() { 
      $(this).dialog("close"); 
      $(this).dialog('destroy'); 
     } 

     $(dialogSelector).dialog({ 
      resizable: false, 
      height: height, 
      width: width, 
      modal: isModal, 
      open: function (type, data) { 
       $(this).parent().appendTo("form"); //won't postback unless within the form tag 
      }, 
      buttons: buttonOpts 

     }); 

     $(dialogSelector).dialog('open'); 

    } 
+0

매우 독창적! 고맙습니다! 처음에는 스크립트를 통해 클릭 만되는 숨겨진 단추를 가지고 싶지 않았지만, 게시 패널과 업데이트 패널의 복잡성을 감안할 때 이것이 가장 신뢰할 수있는 솔루션 일 수 있음을 알 수 있습니다. 다시 한 번 감사드립니다! –

+1

그건 잘 작동하지! 마침내! 이 일을하기 위해 2 일을 보냈습니다 (바이킹과 Google 서핑). 게시 된 답변 코드가 작동 해 주셔서 감사합니다. – fletchsod

관련 문제