【问题标题】:Which datagrid to use for ASP.NET MVC2 project?哪个数据网格用于 ASP.NET MVC2 项目?
【发布时间】:2010-05-24 11:19:02
【问题描述】:

我正在开发一个商业 MVC2 应用程序,该应用程序需要一个具有某种形式的回调更新的网格以支持 10,000 多行。它还应该支持相对丰富的内容(图标、多行描述等)。尽管它需要通常的分页/滚动/排序功能,但它不需要支持分组。所以没什么特别的。

我查看的商业网格是 Component Art 和 Telerik,它们看起来都不错,但对于我需要的东西可能有点 OTT。它们也分别为 800 美元和 999 美元(1 名开发人员)。

我还查看了来自 MvcContrib 的 jqGrid 和网格。这些看起来不错,但对于商业应用程序,我担心这些可能是有风险的选择 - 尽管那里可能是错误的。

我非常感谢您对上述网格的任何观点/经验,或者您可以提出更好的选择/方法。

仅供参考,我使用的是 EF4 和 C#。

【问题讨论】:

    标签: asp.net-mvc gridview datagrid asp.net-mvc-2 grid


    【解决方案1】:

    我在 jqGrid、DevExpress 和 Telerik 的网格以及 ExtJS 方面有相当多的经验。到目前为止,我最喜欢的是 jqGrid。我不担心缺乏支持或项目消失。他们最近刚刚引入了一个重新设计的网格以用于 MVC:http://www.trirand.com/blog/?p=639

    telerik 和 DevExpress 都以自己的方式表现出色。我的一个朋友对 Telerik 网格的事件模型有疑问,我在 DevExpress 网格中经历了相当多的“html 膨胀”。 Telerik 非常支持在客户端重新排序列等操作,而 DevExpress 网格需要回调来执行此操作。

    ExtJS 很棒,但我真的觉得它是一个非常沉重的 JavaScript 网格。 ExtJS 网格在 IE 中的性能可能会很糟糕。如果您没有很多列,或者不要尝试在页面上放置多个网格,它通常会表现良好。您绝对要避免将 ExtJS 网格放入 Tab 控件中,因为当网格呈现为不可见元素时会出现各种问题。

    实际上,我们最近才决定将我们报告系统中使用的所有网格切换到 Telerik 的 Silverlight 网格,与 JavaScript 对应的网格相比,它的性能更出色。

    希望这会有所帮助,祝你好运。

    【讨论】:

    • 杰夫,这是很好的建议,谢谢。我确实简要地查看了 jqGrid,但现在将对此进行全面评估。 Silverlight 会很好,但不是这个项目的真正选择。
    【解决方案2】:

    老实说,您可以使用 MVC 开发您自己的软件,轻松满足您的所有需求。虽然我想如果你需要一些快速的东西,MvcContrib 网格很棒。

    【讨论】:

    • 谢谢克里斯。你能指出我推荐的样本或资源的方向吗?
    • 您可以从一个 foreach 循环开始,每次迭代都会呈现一个表行
    • +1 为 MvcContrib。我使用它,对于大多数网格任务,它都可以正常工作。如果您正在寻找 uber 功能,Telerik 或 DevExpress 将是您的最佳选择。
    【解决方案3】:

    查看 MVC 控件工具包的数据网格。它看起来非常灵活。它允许编辑、删除、插入和分页。此外,将更改移动到控制器中的数据库非常容易。看看here.

    【讨论】:

      【解决方案4】:

      有一个与 Telerik 非常相似的 DevExpress 网格,这对你来说可能又是最重要的。但是,您可以单独购买网格而不是整个套件,尽管这样做可能不值得这样做,因为网格几乎是套件价格的一半。

      【讨论】:

      • 谢谢 - 如果网格是单独的产品会更好。但是我看不到任何提及 MVC - 还是我错过了?
      • 好吧,我确实遇到过这个:devexpress.com/Support/Center/KB/p/K18375.aspx 所以它似乎支持 MVC2 - 需要阅读更多关于这方面的内容,尽管他们的“宣传册”网站上没有提及。
      • 这是一个很好的点 MVC 是 DevExpress 的新增功能 我不能说我已经在 webforms 之外尝试过它,所以可能不是最好的选择,除非你有时间尝试试用版。
      【解决方案5】:

      我对 ASP.NET MC 组件的最后一次尝试没有成功。控制 MVC 比控制老式 ASP.NET 困难得多。

      • 控制器期望的路由必须很好地映射到您的应用程序的路由
      • 当页面上有超过 1 个网格时,事情会变得更加困难
      • 如果控件必须为未启用 Javascript 的客户端工作,那么您的选择将更加有限
      • 如果浏览器的后退按钮需要工作,您的选择会更加有限

      在我的例子中,结果证明使用纯 html 和 jquery 来实现表的分页、排序和过滤要好得多。如果您的网站更像是一个公共网站(如我的网站)或具有 Web 前端的应用程序,我会划清界限。

      【讨论】:

      • 嗨马尔科姆。我想我在过去的几周里也经历过类似的经历。我们的应用程序是一个中型数据密集型企业 Web 应用程序,具有大量相对复杂的屏幕(多个控件、网格等)。我一直在努力从 ASP.NET 迁移到 MVC——不是因为架构/方法,而是因为在没有对 jQuery 和相关(早期)控件进行大量投资的情况下提供出色用户体验的复杂性。这对我们来说太冒险了,我们现在又回到了 ASP.NET 4.0 Web 表单。毫无疑问,我将重温 MVC!谢谢
      • 我认为您做出了正确的选择。我的项目是一个面向公众的网站,MVC 是一个很好的框架。对于您的项目,Viewstate 接缝就像来自天堂的礼物。
      【解决方案6】:

      我们在 ASP.NET MVC 项目中使用 ExtJS 网格。 http://www.extjs.com/deploy/dev/examples/grid/array-grid.html

      【讨论】:

        【解决方案7】:

        我最近对此进行了研究,并且获胜的是 jQgrid,因为性能是最好的!

        【讨论】:

        • 是的,必须同意。 jQGrid 具有许多有用的功能,易于编程,外观专业,并且有大量文章可以帮助您充分利用它。
        猜你喜欢
        • 2011-07-16
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多