如何使用ASP.Net MVC分页和排序网格?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

我是MVC的新手,并不关注如何在网格上进行分页和排序。我习惯于使用带有指向业务层中的对象的ObjectDataSource的asp.Net GridView控件 - 在这种情况下,ODS使用我们的ORM在对象上生成的方法处理所有的分页和排序。

我已经看过使用与MVC相同的ORM - 并且事情在那里工作得很好 - 我只是循环通过集合来在页面上构建表 - 但是没有ODS来处理分页和排序,我很困惑我该如何处理。我将有一个单独的控制器进行分页和排序吗?

我知道我需要推出自己的产品 - 但我从哪里开始?我创建了一个CustomerController和一个显示客户的表格的视图,并且我想对FirstName或LastName列进行排序。我的模型上有一个Sort()方法,它将采用GridView / ODS对使用的格式的字符串排序表达式。我会在我的CustomerController上创建一个名为Sort的新Action,并将ActionLink放入我的标题中?

    <table>
    <tr>
        <th>
            First Name
        </th>
        <th>
            Last Name
        </th>
    </tr>
    <% foreach (var item in Model)
       { %>
    <tr>
        <td>
            <%= Html.Encode(item.FirstName) %>
        </td>
        <td>
            <%= Html.Encode(item.LastName) %>
        </td>
    </tr>
    <% } %>
</table>
提问于
用户回答回答于

可以使用相同的控制器,只需添加一个附加参数并将其命名即可。然后检查控制器的排序值,并根据该参数对数据进行排序。

或者,如果你想在客户端做事情,你可以使用诸如jQuery的插件tablesorter

用户回答回答于

现在,MVC 3现在已经有了一个webGrid。我知道这个问题是来自不久前的,但是当我寻找关于webGrid的东西时,我终于找到了它。所以我认为它应该有一个提及新的webGrid的答案。

以下是一些关于如何使用它的好帖子:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=615

http://cnug.co.in/blogs/shijuv/archive/2010/10/08/using-the-webgrid-helper-in-asp-net-mvc-3-beta.aspx

http://www.nickharris.net/tag/webgrid/

它支持排序,分页和一些Ajax的东西。它可以为你做很多事情,但你也可以单独指定每个单独的列。 还有很多可用的JavaScript库可以为你做表。我个人喜欢使用DataTables。您可以为它提供一个在服务器上生成的现有html表格,或者为它提供一个可以检索数据的端点(全部或只是一个页面)。

扫码关注云+社区