2013-04-15 1 views
5

내 C# MVC4 응용 프로그램에서 두 부분보기로 작업하고 있습니다. 부분보기 1은 ID가 Partial_Analysis 인 div에 있으며 부분보기 2는 ID가 Display_Average 인 div에 있습니다. 각 뷰에는 datatables.net 데이터 테이블이 포함되어 있습니다. 부분 뷰 1의 테이블에서 행이 선택되면 부분 뷰 2가 부분 뷰 1에서 행 선택을 기반으로 한 결과를 보여주는 업데이트 된 데이터 테이블로 새로 고치는 jquery ajax 게시가 수행됩니다.JQuery Ajax 게시 후 부분 뷰 새로 고침

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     $('.rowselection').click(function (e) { 
      var tdata = $('#form1').serialize(); 
      $.ajax({ 
       type: "POST", 
       data: tdata, 
       url: "Home/PartialAverage", 
       success: function (result) { success(result); } 
      }); 
     }); 

     function success(result) { 
      $("#Display_Average").html(result); 
     } 
    }); 
</script> 

특정 단추를 클릭하면 부분보기 1이 새로 고쳐집니다.

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     $('#ChangeName').click(function (e) { 
      var tdata = $('#form1').serialize(); 
      var origname = $('#NameDiv').find('input[name="Name"]').first().val(); 
      var newname = $('#NameDiv').find('input[name="updatedName"]').first().val(); 
      $.ajax({ 
       type: "POST", 
       data: { 
        mCollection: tdata, 
        Name: origname, 
        updatedName: newname 
       }, 

       url: "Home/ChangeName", 
       success: function (result) { success(result); } 
      }); 
     }); 


     function success(result) { 
      $("#Partial_Analysis").html(result); 
     } 
    }); 
</script> 

부분보기 1을 새로 고침 할 때 두 번째 부분보기도 새로 고침해야합니다. 나는 무한 루프를 일으키는 이것을 시도했다.

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     $('#Partial_Analysis').ajaxSuccess(function (e) { 
      var tdata = $('#form1').serialize(); 
      $.ajax({ 
       type: "POST", 
       data: { 
        mCollection: tdata, 
       }, 

       url: "Home/PartialAverage", 
       success: function (result) { success(result); } 
      }); 
     }); 


     function success(result) { 
      $("#Display_Average").html(result); 
     } 
    }); 
</script> 

답변

7

ajaxSuccess은 ajax 호출에 대한 응답을받을 때마다 호출되는 전역 처리기입니다. 다른 Ajax 호출을 수행하면 확실히 무한 루프가 발생합니다. 응답이 다음 ...이해야

$.ajax({ 
       url: 'Home/PartialAverage', 
       data: {mCollection: tdata,}, 
       type: 'POST', 
       success: function (result) { 

        $("#Display_Average").html(data); 
       } 
      }); 

아약스 응답의 경우

function success(result) { 
    $("#Partial_Analysis").html(result); 

    reloadDisplayAverage(); 
} 

function reloadDisplayAverage() { 
    var tdata = $('#form1').serialize(); 
    $.ajax({ 
     type: "POST", 
     data: { 
      mCollection: tdata, 
     }, 
     url: "Home/PartialAverage", 
     success: function (result) { success(result); } 
    }); 

    function success(result) { 
     $("#Display_Average").html(result); 
    } 
} 
+0

완벽하게 일했다. – HendPro12

+0

'$. post '를 사용할 수 있습니다. – Kiquenet

0

:

은 아마 여기에 최선의 선택은 첫 번째 부분보기의 success 핸들러에서 두 번째 테이블을 업데이트하는 것입니다 당신을 위해 일해 ... 나에게 해줬 어 ....

관련 문제