【问题标题】:How to persist sorting and paging in ASP.NET MVC WebGrid when updating via ajax?通过 ajax 更新时如何在 ASP.NET MVC WebGrid 中保持排序和分页?
【发布时间】:2014-12-04 19:45:35
【问题描述】:

当使用 ASP.NET WebGrid 分页和排序时,通过将特定的查询字符串附加到包含名称和值的 url,其中包含说明页码、排序方向等的名称和值。 但是,当使用 ajaxUpdateId 属性能够异步更新 WebGrid 时, 当单击页脚中的页面或单击标题以对列进行排序时,它可以正常工作,但查询字符串不再附加到 url,它在刷新浏览器页面后不会持续分页和排序。 有没有办法在通过 ajax 更新 WebGrid 时保持排序和分页值? 非常感谢您提供任何有用的建议

【问题讨论】:

    标签: asp.net sorting paging webgrid


    【解决方案1】:

    我想我找到了解决方案。也许它并不完美,但它确实有效。我花了很多时间试图弄清楚 WebGrid 在通过 ajax 更新时是如何工作的,但是所有这些功能都是隐藏的。 因此,如果您需要在刷新页面时继续进行排序和分页,则每次更改页面或排序时都必须更新 url。 WebGrid 通过 url 中的查询字符串记住它。 因此,我向 WebGrid 中的所有链接添加了一个 jquery 单击事件,并使用 history.pushState 函数保存单击的 url,然后刷新页面(您需要这样做,因为它仅适用于一次更改,因为 ajax 不会更改 url )

      <script type="text/javascript">
        $("#gridContainderID a").click(function () {
            history.pushState(null, null, this.href);
            location.reload();
        });
        </script>
    

    【讨论】:

      【解决方案2】:

      我已经能够使用以下代码做到这一点: (注意返回 false!)

       $('#gridContent tfoot a[href]').click(function () {
            history.replaceState({}, null, this.href);
            return false;
       });
      

      【讨论】:

        猜你喜欢
        • 2012-03-03
        • 1970-01-01
        • 2011-05-19
        • 2012-10-11
        • 2012-05-14
        • 1970-01-01
        • 2012-07-22
        • 1970-01-01
        • 2010-10-07
        相关资源
        最近更新 更多