我們使用自定義格式化程序來輸出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。
感謝Oleg,現在就開始工作。我想我發現的一個錯誤是,如果你返回'停止',網格頁碼仍然會增加..將提交一個錯誤.. – 2010-09-27 18:10:39
@Marcus:作爲一個解決方法,你可以使用'setGridParam'重置值 – Oleg 2010-09-27 18:12:59
剛剛做過:)有沒有辦法確定當前顯示的頁面?如果使用'getGridParam('page')'它返回將在下一個顯示的頁面。我使用了一個新的變量來跟蹤顯示的實際頁碼 - 不知道是否有更好的方法.. – 2010-09-27 18:20:44