使用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://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内的例子
- FormsAuthentication.SignOut()不会将用户注销
- “UseTaskFriendlySynchronizationContext”的含义是什么?
- 从SqlDataReader读取数据
- 您使用哪个.NET Memcached客户端,EnyimMemcached与BeITMemcached?
- 为什么我的隐藏input写入:value =“value”而不是true / false?
- 如何刷新ASP.NET中的页面? (让它通过代码重新加载)
- 无法让sql server compact 3.5 / 4与ASP .NET MVC 2一起工作
- ASP.NET网站或ASP.NET Web应用程序?
- 为什么在等待后HttpContext.Current为空?