2012-02-12 2 views
1

나는 asp.net 페이지에서 JQuery UI 대화 상자를 사용하고있다. 이 대화 상자에는 제출 버튼이 있습니다. 제출 버튼을 클릭하면 대화 상자가 닫힙니다. 나는 그것에 웹 메서드를 호출하고 싶다. 메서드가 ture를 반환하면 닫고 싶습니다. 그렇지 않으면 오류 메시지가 표시된 상태로 열려 있습니다.asp.net submit button close Jquery Ajax

[편집]

<script> 

     jQuery(function() { 
      var dlg = jQuery("#dialog").dialog({ 
       draggable: true, 
       resizable: true, 
       show: 'Transfer', 
       hide: 'Transfer', 
       width: 320, 
       autoOpen: false, 
       minHeight: 10, 
       minwidth: 10, 
       beforeClose: function() { 
        $.ajax({ 
         url: "Default.aspx/GetResult", 
         success: function (response) { 
          if (response == true) { 
           ("#dialog").close() 
          } 
          else { 
           alert('asdasdds'); 
          } 
         } 
        }); 


        return false; //this will stop dialog box to close 
       } 
      }); 
      dlg.parent().appendTo(jQuery("form:first")); 
     }); 

    </script> 

<div id="Result"> 
     Click here for the time.</div> 
    <div id="dialog" style="text-align: left; display: none;"> 
     <asp:Button ID="btnButton" runat="server" Text="Button" OnClick="btnButton_Click" /> 
    </div> 

을 수행하는 방법에 대해 설명합니다. 제발 제안 해주세요.

감사합니다, 아시프 하미드

답변

2

당신은 ajax를 사용의 WebMethod를 호출 한 후 조건부 응답에 따라 거기에 역할을 할 수 있습니다. 귀하의 웹 메소드가 단지 true/false을 반환하면 클라이언트 측에서이 값을 확인할 수 있습니다.

제출 단추를 클릭 할 때이 코드를 실행하고 대화 상자를 닫지 마십시오. 성공 처리기가 닫을 지 여부를 결정하게하십시오.

$.ajax({ 
    url: "urlOfTheService.asmx/methodName", 
    success: function(response){ 
     if(response == true){ 
      //Code to close the dialog 
     } 
     else{ 
      //Show the error message 
     } 
    } 
}); 

ajax() 참조 : http://api.jquery.com/jQuery.ajax/

업데이트 : 대화 상자의

사용 open 이벤트 형성하고 위의 코드를 실행할 수있는 전송 핸들러를 첨부 할 수.

 jQuery(function() { 
      var dlg = jQuery("#dialog").dialog({ 
       draggable: true, 
       resizable: true, 
       show: 'Transfer', 
       hide: 'Transfer', 
       width: 320, 
       autoOpen: false, 
       minHeight: 10, 
       minwidth: 10, 
       open: function(){ 
        $(this).find('form') 
        .unbind('submit') 
        .submit(function(){ 
          var $form = $(this); 
          $.ajax({ 
          url: "urlOfTheService.asmx/methodName", 
          success: function(response){ 
           if(response == true){ 
            //Submit the form 
            $form.unbind('submit')[0].submit(); 
           } 
           else{ 
            //Show the error message 
           } 
          } 
         }); 
         return false; 
        }); 
       } 
      }); 
      dlg.parent().appendTo(jQuery("form:first")); 
     }); 
+0

빠른 응답을 보내 주셔서 감사합니다. jquery UI 대화 상자에서이 코드를 사용하는 방법? – DotnetSparrow

+0

기본적으로 제출 또는 닫기 버튼을 클릭하여 대화 상자를 닫을 때이 코드를 실행해야합니다. 대화 상자를 닫을 코드는 어디에 있습니까? – ShankarSangoli

+0

업데이트 된 질문을하시기 바랍니다. 코드를 추가했습니다. – DotnetSparrow