【问题标题】:To WebGrid or not to WebGrid...what is the answer?到 WebGrid 还是不到 WebGrid...答案是什么?
【发布时间】:2011-06-23 22:05:21
【问题描述】:

我正在阅读并听到一些痛点,并且想知道我是否应该走那条路。更不用说,我似乎找不到任何明确的文档(来自 Microsoft)。如果你说我不应该使用它,你会建议什么路线?我正在尝试建立一个新网站,但我希望第一次就做好。

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-3 webgrid


【解决方案1】:

如果您希望快速轻松地显示数据并且不必依赖任何外部库,我会说您应该选择使用 WebGrid。但是,如果您正在寻找功能齐全的网格,我现在不会使用 WebGrid。在应用样式和做其他流行的网络网格库中可用的更高级方面存在困难。

至于我对您应该使用什么的看法 - 如果 WebGrid 不能满足您的需求,请查看 jqGrid。这是一个非常受欢迎的软件包,运行良好,而且相当容易设置和运行。

如果您想了解更多 documentation on WebGrid,请查看 Microsoft 的 ASP.NET MVC 3 教程网站。

【讨论】:

  • WebGrid 文档链接已过时(重定向到另一个页面)
【解决方案2】:

我查看了纯 html 表格、mvccontrob 网格、jqgrid 和 webgrid。我对这三个方面的经验有限:

jQgrid 是最强大的,并且支持 jquery UI 主题。我能够实现内联编辑、排序、过滤和简单的服务器端验证。我花了三天时间才弄明白,但考虑到我实现的所有功能,这还不算太糟糕。我能够通过搜索互联网并找到示例来弄清楚它,所以那里有很多资源。不过,它确实涉及很多 javascript。我最不喜欢它的是搜索功能。它默认打开了太多选项,我无法关闭我不想使用的选项。

Mvccontrib 网格很容易启动和运行,但不支持内联编辑。另外,我读了这篇文章,在我看来,它不会再受支持了: mvccrontrib

糟糕,这是一个非常漂亮且易于使用的网格。

我发现 webgrid 很容易设置,但它也没有内联编辑。我猜它的默认分页效率也很低,它总是返回所有行,而不管每页的 # 条记录。

如果您需要内联编辑,jqgrid 绝对是您的不二之选。

如果没有,如果它没有被搁置,我会说 Mvccontrib。这给我留下了纯 html 表格或 webgrid,我更喜欢纯 html 表格,正如 Naveen 推荐的那样。我能够很容易地实现排序、分页和过滤。

我将坚持使用 jqgrid,因为我有一个工作示例,并在生产时查看 Jquery UI Grid

【讨论】:

    【解决方案3】:

    我无法告诉您是否应该使用 WebGrid 帮助程序,因为这将是主观的,尤其是当您刚刚在没有任何具体细节的情况下在您的问题中谈到了痛点。我能做的就是为您提供一些不错的选择:

    【讨论】:

    • 所以我的主要痛点是缺乏文档。如果你知道一些,请指出正确的方向。
    • 我支持 MvcContrib Grid。我为我正在创建的应用程序尝试了 WebGrid 和 MvcContrib Grid。我发现 MvcContrib Grid 更易于使用,并且不需要任何令人作呕的动态类型。
    【解决方案4】:

    我没有找到任何官方文档——只有教程和示例。但是我确实找到了这个页面,它列出了 Web Grid Razor Helpers API Reference 上所有可用的方法

    还列出了其他 Razor 辅助方法的 API。

    【讨论】:

      【解决方案5】:

      摘自以下参考链接:

      为了展示一个简单的 WebGrid 示例,我设置了一个 ASP.NET MVC 操作,它只是将一个 IEnumerable 传递给视图。在本文的大部分内容中,我都使用 Razor 视图引擎,但稍后我还将讨论如何使用 WebForms 视图引擎。我的 ProductController 类具有以下操作:

      public ActionResult List()
      {
        IEnumerable<Product> model =  _productService.GetProducts();
        return View(model); 
      }
      

      列表视图包含以下 Razor 代码,它呈现图 1 中所示的网格:

      @model IEnumerable<MsdnMvcWebGrid.Domain.Product> 
      @{ ViewBag.Title = "Basic Web Grid"; }
      
      <h2>Basic Web Grid</h2>
      <div>
         @{ var grid = new WebGrid(Model, defaultSort:"Name"); }
         @grid.GetHtml()
      </div>
      

      参考:此页面显示更多 WebGrid 示例http://msdn.microsoft.com/en-us/magazine/hh288075.aspx

      【讨论】:

      • 仅链接答案(尤其是多年前的问题)没有帮助,因为链接往往会中断。将链接的相关部分拉入此答案,以确保数据仍然可用,即使链接不可用。
      【解决方案6】:

      WebGrid 似乎是一个生产力工具,一篇关于它的使用的好文章在 MSDN here987654321@ 七月号

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-26
        • 2011-06-22
        • 1970-01-01
        • 2011-07-21
        • 1970-01-01
        • 1970-01-01
        • 2014-04-07
        • 2013-06-18
        相关资源
        最近更新 更多