2010-09-27 69 views
5

我們使用自定義格式化程序來輸出html表單文本框。在用戶輸入數據並且他們擊中了下一個/上一個按鈕的情況下,我們想告訴他們「您已經編輯過數據,點擊確定以保留在此頁面上並保存您的數據」。你怎麼能這樣做?jqGrid阻止尋呼機導航?

'onPaging'事件在您使用尋呼機時觸發,但它似乎不能防止發生分頁。


更新:當前的解決辦法:

var currPg = 1; 
var dirty = 'false'; 


    $("#list").jqGrid({ 
    ... 
    onPaging: function (b) { 
     var nextPg = $("#list").getGridParam("page"); 

     if (dirty == 'false') { 
      currPg = nextPg; 
      return; 
     } 


     $("#dialog-confirm").dialog({ 
     modal: true, 
     buttons: { 
      "Stay on current page": function() { 
       $(this).dialog("close"); 
      }, 
      "Change page": function() { 
       $(this).dialog("close"); 
       reloadGrid($("#list"), null, nextPg, 'false'); 
      } 
     } 
     }); 

     $("#list").setGridParam({page:currPg}); //Workaround - jqGrid still increments the page num even when we return stop so we have to reset it (and track the current page num)  
     return 'stop'; 
    }, 

更新2:錯誤記錄here

回答

4

如果功能onPaging返回'停止',那麼分頁將停止。

+0

感謝Oleg,現在就開始工作。我想我發現的一個錯誤是,如果你返回'停止',網格頁碼仍然會增加..將提交一個錯誤.. – 2010-09-27 18:10:39

+0

@Marcus:作爲一個解決方法,你可以使用'setGridParam'重置值 – Oleg 2010-09-27 18:12:59

+0

剛剛做過:)有沒有辦法確定當前顯示的頁面?如果使用'getGridParam('page')'它返回將在下一個顯示的頁面。我使用了一個新的變量來跟蹤顯示的實際頁碼 - 不知道是否有更好的方法.. – 2010-09-27 18:20:44

0

根據我的觀察,onPaging事件在最新的jqgrid插件中效果很好。而如果我們使用以前的jqgrid插件(在3.8版之前).onPaging事件將起作用,但是在使用此事件後存在分頁錯誤。用戶點擊確定或取消(在兩種情況下)頁面的增量值。這導致頁面的損壞數據。