jqGrid阻止寻呼机导航?

时间:2010-09-27 16:32:16

标签: jquery jqgrid pagination pager

我们使用自定义格式化程序输出html表单文本框。如果用户已输入数据并且他们点击了下一个/上一个按钮,我们想告诉他们“您已经编辑了数据,点击确定以保留在此页面并保存您的数据”。你怎么能这样做?

使用寻呼机时会触发“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

2 个答案:

答案 0 :(得分:5)

如果函数onPaging返回'stop',则分页将停止。

答案 1 :(得分:0)

根据我的观察onPaging事件在最新的jqgrid插件中运行良好。如果我们使用以前的jqgrid插件(在3.8版本之前).onPaging事件将起作用但是,在我们使用此事件后,分页中存在错误。因为它自动递增页面的值,无论是用户点击确定还是取消(在两种情况下都是如此)。导致破坏的数据损坏。