【问题标题】:jqGrid prevent pager navigation?jqGrid 阻止寻呼机导航?
【发布时间】:2011-04-17 21:02:31
【问题描述】:

我们使用自定义格式化程序来输出 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

【问题讨论】:

    标签: jquery jqgrid pagination pager


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢 Oleg,现在正在处理这个问题。我想我发现的一个错误是,如果您返回“停止”,则网格页码仍会增加..将提交一个错误..
      • @Marcus:作为一种解决方法,您可以使用 setGridParam 重置该值
      • 刚刚做到了:) 有没有办法确定当前显示的页面?如果您使用getGridParam('page'),它将返回接下来将显示的页面。我使用了一个新变量来跟踪显示的实际页码 - 不确定是否有更好的方法..
      • @Marcus:你可以直接用jQuery得到它。
      • 我不清楚您指的是什么-您如何查询 jqGrid 以显示当前页面?如果您在 onPaging 中使用 getGridParam('page') 这将返回下一个/上一个/第一/最后一页码 - 而不是当前页码。
      猜你喜欢
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      相关资源
      最近更新 更多