使用ASP.Net MVC分页和sorting网格

我是新来的MVC,而不是按照如何做网页上的分页和sorting。 我习惯于使用asp.Net GridView控件,ObjectDataSource指向我们业务层中的对象 – 在这种情况下,ODS使用我们的ORM在对象上生成的方法处理所有的分页和sorting。

我已经看过使用与MVC相同的ORM – 事情工作得很好 – 我只是循环通过集合在页面上build立表 – 但没有ODS来处理分页和sorting,我很困惑我该怎么处理 我将有一个单独的控制器的分页和sorting?

我知道我需要自己动手 – 但是我从哪里开始呢? 我创build了一个CustomerController和一个显示客户的表格的视图,我想在FirstName或LastName列上sorting。 我的模型上有一个Sort()方法,它将采用GridView / ODS对使用的格式的stringsortingexpression式。 我会在我的CustomerController上创build一个名为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> 

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

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

现在MVC 3现在有一个webGrid开箱即用。 我知道这个问题是前一阵子,但是在寻找关于webGrid的东西的时候,我终于明白了。 所以我认为它应该有一个提及新的webGrid的答案。

以下是关于如何使用它的几个好post:

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/

它支持sorting,分页和一些Ajax的东西。 它可以为你做很多,但你也可以分别指定每个单独的列。

更新:
也有很多可用的JavaScript库可以为你做表。 我个人喜欢使用DataTables 。 你可以为它提供一个在服务器上生成的现有的html表,或者给它一个可以检索数据的端点(全部或只是一个页面)。

还有很多,只是谷歌周围。

有了MVC,你必须自己分类,分页等。我build议YUI DataTable或者其他一些JavaScript网格。

另外,如果您发现自己在执行繁重的数据网格工作,则可能需要查看ASP.NETdynamic数据,它专门针对这些针对ORM的交互types而devise。

首先使用jQuery 。 jQuery是你的朋友。 然后使用这个真棒,可能是最好的网格控制jQuery jqGrid 。

在您的CustomerController中创build一个名为CustomerData的操作。 所有与网格的交互应该指向这个动作。

去这里大量的关于如何使用jqGrid的例子。

我们一直使用来自JqWidgets的客户端控件JqxGrid,并且非常满意其涉及大量logging的性能以及分页,过滤,内置sorting。 这里是一个绑定在ASP.Net MVC内的例子