【问题标题】:Sorting, Filtering and Paging in ASP.NET MVCASP.NET MVC 中的排序、过滤和分页
【发布时间】:2010-01-25 12:23:27
【问题描述】:

实现这些功能的最佳方法是什么?涉及项目的哪一部分?

我看到了一些 JavaScript 网格的例子,但我说的是最适合 MVC 架构的通用方法。

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

我发现使用 HTML 助手可能对分页很有用,但不知道它们是否适合排序。我看过 jQuery、tableSorterquick search 插件,但它们仅适用于当前获取的数据,对可能需要访问数据库的实际排序和过滤没有帮助。我对将这些工具与 AJAX 一起使用来获得一些有用的东西有一些想法,但我不知道是否在任何地方都做过类似的努力。

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

【问题讨论】:

  • 这是一大段文字。很难阅读。
  • 阅读只需 30 秒!
  • 阿里:实际上阅读时间超过了 30 秒,而完全理解则需要更长的时间。我试图通过使您的问题更清晰一些来帮助您获得更多/更好的答案。

标签: c# asp.net-mvc gridview jqgrid asp.net-mvc-routing


【解决方案1】:

这是我基于 jqGrid 的解决方案:http://sprokhorenko.blogspot.com/2010/01/jqgrid-mvc-new-version-sources.html

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

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

  1. 使用 ViewModel 上的属性控制所有格式设置和编辑
  2. 自动请求、排序/过滤/分页处理
  3. 自动 CRUD 处理
  4. 可以处理基于数据库和列表的存储库
  5. 没有可收藏的路线/链接...

您只需要为 ViewModel 提供属性并覆盖几个模板 CRUD 方法(可以只是 InternalConstructEntity()。

【讨论】:

    【解决方案2】:

    你可以看看 MVContrib,他们有很好的网格支持。 http://www.codeplex.com/MVCContrib

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

    【讨论】:

      【解决方案3】:

      我个人使用jQuery DataTables。它非常简单,并且具有明确定义的服务器端请求。 I've written a plugin for jQuery DataTables with C# and MVC。它使用标准的 jQuery DataTables 请求并相应地操作 IQeryable 实例。

      【讨论】:

        猜你喜欢
        • 2011-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 2018-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多