2012-09-18 57 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 

這裏是我的刪除:

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. 
       }, 

這裏是刷新代碼:

$.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

回答

0

我意識到這是一個古老的線程,但我遇到了這個非常相同的問題與flexigrid緩存結果,並通過Ajax不是重新獲取數據。它在實施中似乎還沒有完全解決。

我的「黑客」是略微修改URL當我打電話.flexReload(),使得它增加了一個隨機值的查詢字符串:

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

這解決了這個問題對我來說。