【问题标题】:Is a HTML Table better than a Gridview in ASP.NET MVC?HTML 表比 ASP.NET MVC 中的 Gridview 更好吗?
【发布时间】:2009-09-23 15:27:17
【问题描述】:

我正在研究绑定一些数据。哪种输出方式会更好。我通常使用 Gridviews,但我不确定现在的表格是否会更好。

【问题讨论】:

    标签: c# .net html asp.net-mvc


    【解决方案1】:

    在使用 MVC 框架时,您应该真正避开 ASP.NET Web 窗体控件。他们不能 100% 很好地在一起。

    HTML 助手/标准 HTML 元素是替代品。这个想法是您可以更好地控制您使用 Web 表单执行的操作。

    有一些不错的网格可用:

    1. jqGrid(与 MVC 一起使用的示例 here
    2. 还有很棒的 MVCContrib 项目。

    【讨论】:

      【解决方案2】:

      如果您要做的只是呈现(输出)一个数据表,则根本不需要网格视图(此外,在 MVC 中,您很可能无论如何都不想这样做)。

      只需遍历您的模型集合并为每个项目创建一个新的表格行:

      <table>
      <% foreach (var item in Model) { %>
      <tr><td>FieldName</td><td><%= Html.Encode(item.Field) %></tr>
      <% } %>
      </table>
      

      您可以通过对表格应用适当的 css 类来随意格式化表格。

      编辑:显示多个字段的更好示例,还显示了如何不显示数据。

                       <% if (Model.Count() > 0)
                      { %>
                          <table width="35%">
                       <thead><tr><th>Species</th><th>Length</th></tr></thead>
                        <%  foreach (var item in Model)
                          { %>
                           <tr>
                               <td><%= item.FishSpecies%></td>
                               <td align="center"><%=item.Length%></td>
                           </tr>
      
                       <% } %>
                          </table>
                      <% }
                      else
                      { %>
                      No fish collected.
                      <%} %>
      

      【讨论】:

      • 如果您有超过 1 个字段或超过 1 行(取决于您的方向,数据),这将如何工作?
      • 我在去吃午饭的路上想着我的例子,以及它有多么有限。我在上面编辑过:)
      【解决方案3】:

      这实际上取决于您输出的内容。 我只对表格数据使用表格/网格视图。

      对于其他东西,我使用Repeater 控制器或FormView。

      【讨论】:

        【解决方案4】:

        虽然您可以在 MVC 应用程序中部分使用 ASP.NET 服务器控件(例如,菜单会很好地呈现),但您应该期望它们不会暴露您在 ASP.NET 中看到的预期或丰富的行为。原因有很多:

        • 它们通常依赖于 ViewState(和 ControllerState)
        • 您需要将它们放在带有 runat="server" 的表单标签中。大多数控件会检查是否确实如此
        • 与此相关,它们严重依赖回发范式,而 ASP.NET MVC 中并未使用该范式

        作为你不会找到的典型行为示例,有分页和排序......

        当您深入研究它时,您很快就会发现 MVC 框架中可用的帮助器允许您非常有效地生成表格数据....

        【讨论】:

          猜你喜欢
          • 2010-09-29
          • 2019-01-08
          • 2010-10-29
          • 2019-06-25
          • 1970-01-01
          • 2021-04-20
          • 2019-07-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多