通过ajax更新时如何在ASP.NET MVC WebGrid中持久排序和分页?

时间:2014-10-09 18:49:32

标签: asp.net sorting paging webgrid

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我已经能够使用此代码执行此操作: (注意返回false!)

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