【问题标题】:Is there any way to keep current page when sorting jqgrid columns?对 jqgrid 列进行排序时,有什么方法可以保留当前页面?
【发布时间】:2011-12-04 07:36:54
【问题描述】:

我的 jqgrid 包含几个页面。当我对任何列进行排序时,页面将重置为第一个。

(对于 filterToolbar 也是如此,即调用 $("#my-grid")[0].triggerToolbar();)

有什么方法可以在排序/过滤后保留当前页面?

编辑:

其实我的问题有点复杂。

我将 jqgrid 首选项(rowNum、页面、过滤器等)保存到 cookie 中。 当我第一次加载页面时,我加载了首选项。 我使用 Mark B 的回答中的技术(参见 jqGrid Filter Toolbar initial default value)来填充我的过滤器默认值。

问题:在这种情况下,页面总是设置为第一个。(因为 triggerToolbar 调用)即它不保存状态。

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    我不太明白你的要求。例如,如果用户在第二页上看到了一些行,然后用户单击了列标题对列进行排序,则网格将被排序。用户以前看过的数据可以在任何页面上。所以我不明白你为什么要保留当前页面,它绝对会显示之前显示的另一个数据。

    如果您确实需要保留页面,您可以通过以下方式执行此操作。在loadComplete 内部,您可以保存page 参数的值。在onSortCol 事件处理程序内部,该值将已更改为 1,但您可以将其更正为您之前保存的值。我没有对此进行测试,但我认为它应该可以工作。

    更新:现在我想我明白你原来的问题了。我认为您应该选择herehere 描述的另一种方式。如果filters 不为空(或其他过滤器参数取决于您使用的选项),您只需将postData 值保存在cookie 中并设置jqGrid 的search:true 参数。在这种方式下,您不仅应该能够恢复过滤器,还应该能够恢复 page 值。最终解决方案可能有点取决于 jqGrid 参数和您使用的 filterToolbar 的参数。因此,您将遇到实现问题,您应该包含更多您使用的代码。

    【讨论】:

    • 我检查过,它有效。谢谢!您可能对这种行为是正确的。在这种情况下,它没有多大意义。我问了这个问题(更抽象),因为我认为它可以帮助我解决实际问题。
    • @mt_serg:不客气!我在答案中写了“更新”部分。
    • 感谢您的建议!我通过在 jqgrid 第一次加载时向“postData”添加新的“overridePage”值来解决问题。而不是调用 $("#my-grid")[0].triggerToolbar() 我调用以下函数: function triggerToolbar(gridId, newPage) { var postData = $("#" + gridId).getGridParam('postData' ); postData.overridePage = newPage; $("#"+gridId)[0].triggerToolbar();删除 postData.overridePage;在服务器端,我检查“overridePage”值,如果它存在就使用它。 p.s.抱歉格式化
    • @mt_serg:不客气!我很高兴听到/读到您的问题已解决。
    【解决方案2】:

    我将 mvc 与 jqgrid 一起使用,这个解决方案对我有用:

    $("#GridTable").jqGrid({
    ...
    onSortCol:
                function () {
    
                    var postpage = jQuery("#GridTable").getGridParam('postData');
                    jQuery("#GridTable").setGridParam({ page: postpage.page });
               },
    ...
    });
    

    【讨论】:

      猜你喜欢
      • 2016-05-03
      • 2011-06-20
      • 1970-01-01
      • 2020-03-22
      • 2010-09-07
      • 2014-12-27
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多