2012-09-18 3 views
1

목록 항목이있는 표가 있습니다. 특정 선택한 항목을 삭제할 수있는 옵션이 있습니다. 그러나 나는 문제가있다.목록에서 항목 목록을 삭제할 때 마지막 남은 항목이 사라지지 않습니다.

여러 항목이있는 경우 삭제 한 후에 항목이 모두 사라집니다. 하지만 1 개의 항목이 남아 있고 삭제하면 저장 프로 시저가 실행되고 모든 항목이 삭제됩니다. 그러나 시각적으로 목록 항목은 여전히 ​​있습니다. 그러나 내 페이지를 새로 고침하면 사라집니다.

삭제 후 다른 사람처럼 사라지게해야합니다. 여기에 두 가지 기능이 있습니다. 하나는 삭제 및 새로 고침입니다. 그리고 다른 하나는 새로 고침 코드입니다. 여기

내 그리드입니다 : 여기
$('#viewExpensesGrid').flexigrid({ 
      url: url, 
      dataType: 'json', 
      method: 'get', 
      colModel: [ 
      { display: '<input type="ch etc etc other parts of table like id, name etc 

가 내 삭제 :

$.fn.flexReload = function (p) { // function to reload grid 
    return this.each(function() { 
     if (this.grid && this.p.url) this.grid.populate(); 
    }); 
+0

당신은 바이올린을 만들고 공유 할 수 있습니까? (http://jsfiddle.net/) – Sato

답변

1

것은 당신이 flexigrid의 최신 버전을 사용하고 있습니까 :

function doTheDelete(doIDeleteExpenses) { 
     var selectedExpensesList = getSelectedExpenseIDs(); 
     if (selectedExpensesList.length > 0) { 
      $.ajax({ 
       type: "POST", 
       //url: "/Tasks/ViewTasks.aspx/deleteTasksAndLinkedItems", 
       url: '<%=ResolveUrl("~/Expenses/ViewExpenses.aspx/deleteSelectedExpense")%>', 
       data: "{'DeleteExpenses' : '" + doIDeleteExpenses + "'," + "'ExpID': ['" + selectedExpensesList.join(',') + "']}", 
       //dataaaaaa 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        var ss = data.d; 
        if (ss.length > 0) { 
         for (var i = 0; i < ss.length; ++i) { 
          $.noty.consumeAlert({ layout: 'center', type: 'error', dismissQueue: true }); 
          alert(ss[i]); 
         } 
        } 
        $("#viewExpensesGrid").flexReload(); //this reloads the grid but doesnt gets rid of the last item. 
       }, 

여기가 새로 고침 코드 ?

8 월에 가능한 수정 사항이있는 것 같습니다.

내가이 오래된 스레드 실현

0

$.ajax cache fix for flexReload()를 참조하십시오,하지만 난 flexigrid 결과를 캐시와 Ajax를 통해 데이터를 refetching하지와 함께이 매우 같은 문제로 실행했습니다. 구현에서 아직 완전히 해결되지 않은 것 같습니다.

내 "해킹"나는 쿼리 문자열에 임의의 값을 추가 .flexReload()하도록 호출 할 때 약간 URL을 수정하는 것입니다 :

 $("#grid").flexOptions({ url: 'server_url?hash=' + Math.random()}).flexReload(); 

이 나를 위해 문제를 해결.

관련 문제