C# ASP.NET MVC中的排序、筛选和分页

C# ASP.NET MVC中的排序、筛选和分页,c#,asp.net-mvc,gridview,jqgrid,asp.net-mvc-routing,C#,Asp.net Mvc,Gridview,Jqgrid,Asp.net Mvc Routing,实现这些特性的最佳方法是什么?项目的哪一部分会涉及到这些特性 我看到了一些JavaScript网格的例子,但我谈论的是一种最适合MVC体系结构的通用方法 我考虑过配置路由和模型来实现这些功能,但我不清楚这是否是实现这些功能的正确方法。一方面,我认为如果我们在路由(item/page/sort/)中加入逻辑,我们将获得书签和避免JavaScript等好处。另一方面,如果我们使用JavaScript网格,我们可以像ASP.NET web表单中的老式网格视图那样进行操作 我发现使用HTML助手可能对分

实现这些特性的最佳方法是什么?项目的哪一部分会涉及到这些特性

我看到了一些JavaScript网格的例子,但我谈论的是一种最适合MVC体系结构的通用方法

我考虑过配置路由和模型来实现这些功能,但我不清楚这是否是实现这些功能的正确方法。一方面,我认为如果我们在路由(item/page/sort/)中加入逻辑,我们将获得书签和避免JavaScript等好处。另一方面,如果我们使用JavaScript网格,我们可以像ASP.NET web表单中的老式网格视图那样进行操作

我发现使用HTML助手可能对分页有用,但不知道它们是否适合排序。我看过jQuery和插件,但它们只处理当前获取的数据,对可能需要接触数据库的实际排序和过滤没有帮助。我对将这些工具与AJAX并肩使用来获得一些有用的东西有一些想法,但我不知道在任何地方是否有类似的工作


我研究的另一种方法是在web表单上使用动态数据,但我没有发现任何关于集成MVC和DD是否是一个好主意的建议。我知道为单个案例实现过滤和排序很简单(尽管它有一些问题,比如使用动态LINQ,这还不是一种标准方法),但是,创建一个在所有情况下都有效的排序或过滤工具是我要寻找的想法。(这可能是因为当web表单开发人员想知道为什么每次我都要为不同的实体实现排序场景时,我都要编写相同的代码时,我希望手头有一些东西)

您可以查看MVContrib,它们有很好的网格支持。


对于LOB应用程序,Telerik控件可能是一个很好的解决方案

以下是我基于jqGrid的解决方案:

它有点特定于S#arp架构和NHibernate,所以我不确定它是否适合您的需要。但它是模块化的,因此,例如,调整基本存储库实现很容易

基本上,它只是jqGrid,有其所有的优点和缺点,但集成到MVC中:

  • 使用ViewModel上的属性控制所有格式设置和编辑
  • 自动请求、排序/筛选/分页处理
  • 积垢自动处理
  • 可以处理数据库和基于列表的存储库
  • 没有可书签的路由/链接

  • 您所需要的只是为ViewModel提供属性并覆盖两个模板CRUD方法(可以小到InternalConstructEntity().

    我个人使用。它非常简单,并且有一个定义良好的服务器端请求。它使用标准的jQuery DataTables请求,并相应地操作一个IQeryable实例。

    这是一个大的字块。很难读。但是读起来只需要30秒!阿里:读起来实际上花了相当多的30秒,伊芙n不再需要完全理解。我试图通过使你的问题更清晰一点来帮助你获得更多/更好的答案。