【问题标题】:asp.net datagrid sortingasp.net 数据网格排序
【发布时间】:2011-05-18 16:14:04
【问题描述】:

我有一个数据网格,它显示从存储过程返回的数据。这很好用。问题是我想做排序。我知道网格中有排序功能,但是,我不想回到服务器并获取一组新数据。我想要做的只是重新排序已经显示的数据。

有人对如何做到这一点有任何想法吗?

谢谢!

更新

基本上,我找不到解决此问题的简单方法。我尝试将我的 dataGrid 更新为 gridView 控件,甚至(对于我的特定问题)也很困难。我最终取消了所有更改,只是添加了另一个网格,其中只有我想要的数据。

如果其他人有这样的问题,我建议将其从数据网格中取出并用 jQuery 编写。我可以在 15 分钟内编写一个包含我想要的数据的表格(并且可以使用下面提到的插件完全排序),而我尝试将方形钉塞进圆孔中花费的时间要花几个小时。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    听起来您想要的是在客户端进行排序(内置网格排序是服务器端的,听起来您不想要往返)。如果您使用 jQuery,有一些非常简单的插件可以在客户端处理排序 a。例如,使用 tablesorter 插件 (http://tablesorter.com/docs/),您只需一行代码即可:

    jQuery(".gv").tablesorter();
    

    其中 gv 是用于我所有表的 css 类(ASP.net 应用程序中的 GridView 控件)。

    您需要确保您的 DataGrid 正在渲染 <thead><tbody>,请参阅相关问题以了解添加这些的 Javascript 方法,或者您可以从 PreRender 事件中的代码隐藏中执行此操作:@987654322 @

    【讨论】:

    • 你能把这个tablesorter插件与datagrids一起使用吗?还是只是网格视图?我当前的项目(旧版)正在使用数据网格(最初用 1.1 编写)。有没有办法将这个插件与那些一起使用?
    • 是的,您可以使用 DataGrid。插件关心的只是页面上是否有html 。
    • 我无法让它为我的 DG 工作。它可能比插件更与项目相关。如果我有我的 druthers 和时间,我会使用 jQuery 而不是 DataGrids 重写页面。
    • @Jeff V,更新了您需要做的另一件事的答案。
    【解决方案2】:

    您可以做的一件事是将当前结果集保存到用户会话中,前提是它不是那么大。然后,您可以使用 DataGrid 的内置排序功能,而无需处理到数据库的往返行程。

    您将返回服务器,但通常返回 Web 服务器的速度远快于涉及数据库的行程。

    【讨论】:

      猜你喜欢
      • 2015-05-04
      • 2012-03-22
      • 2011-02-20
      • 2012-08-25
      • 1970-01-01
      • 2011-03-05
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多