【问题标题】:How can I render this data, into a Grid, in an ASP.NET MVC view?如何在 ASP.NET MVC 视图中将这些数据呈现到网格中?
【发布时间】:2010-10-10 05:31:24
【问题描述】:

我想复制Stack Overflow's Tags page,它们有一个标签列表(或其他)并将它们显示在几列中,第一列是前 10 条记录,第二列是记录 11->20 等.

当然我的数据已经分页了。

我不确定这种视图叫什么?这是网格视图吗?对我来说,网格视图就像 Excel 表格,所有数据都在行中,列用于过滤/排序。

【问题讨论】:

    标签: .net asp.net-mvc datagrid


    【解决方案1】:

    您可以使用 GridView,但也可以使用 ListView,这样可以更好地控制您的标记。例如,您可以执行以下操作:

            <asp:ListView>
                <LayoutTemplate>
                    <table border="0" cellpadding="1">
                        <asp:ContentPlaceHolder ID="itemPlaceHolder" runat="server" />
                    </table>
                </LayoutTemplate>
                <ItemTemplate>
                    <tr>
                        <td>
                            <asp:Label runat="server" class="lbl_tag"><%#Eval("Tag") %></asp:Label>
                        </td>
                        <td>
                            <asp:Label runat="server" class="lbl_tag"><%#Eval("Tag") %></asp:Label>
                        </td>
                        <td>
                            <asp:Label runat="server" class="lbl_tag"><%#Eval("Tag") %></asp:Label>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:ListView>
    

    这将为您提供三列“标签”。 ListView 也有一些不错的属性,例如 AlternatingItemTemplate。如果您不希望您的 ListView 呈现为表格,您可以简单地使用您自己的标记修改您的模板。当然,正如我所说,您可以轻松地将 GridView 用于此类事情。

    【讨论】:

    • 您可以使用 ListView 或 Gridview,但我不建议在 ASP.NET MVC 中这样做。
    • 同意@Andrew Barber - 我想尽可能避免使用经典的 asp 控制。
    • @Pure.Krome,这些是 ASP.NET 控件,而不是 Classic。他们过去所做的只是动态生成 HTML,但如果您更喜欢静态代码,那么为什么不直接硬编码一个表格呢?如果您如此反对表格(这很愚蠢 - 表格用于表格数据),那么只需使用 div。
    • 我会发布我的答案,但我(昨天)用 div + ul's 很容易地工作了 - 就像我们的 UI 人员喜欢和要求的那样。
    【解决方案2】:

    如果您检查该页面的 HTML 源代码,您会看到 SO 使用表格进行操作。您可以使用某种网格助手来做到这一点,或者如果您愿意,也可以直接在视图中。

    您可以在视图中非常简单地做到这一点,只需弄清楚您需要多少列,以及每行需要多少项目。枚举整个结果集,每个X 项(X 是每列的最大值)创建一个新的TD 标记。当然,那就保证每页数据不超过X * COLUMNS

    但是由于您不想对表格进行此操作,因此此答案可能对您没有帮助。

    【讨论】:

    • 是的,我知道它是一个表格(或者事实上,它应该是 divs .. 表格是 1990 年代的..).. 但我希望有一些代码或一些教程的链接可以向我展示他们如何在将数据显示到视图之前将数据分成列。
    • 表格是有目的的;显示表格数据。这正是它的本质:表格数据。这正是桌子的用途。顺便提一句; A 标签也是 1990 年代的……我们应该停止将它用于链接吗?
    • :) 我不打算进入关于表格与 div 的辩论 :)
    • 那我真的帮不了你了。您想要带有“列”和“行”的东西,但不想要表格;为什么不使用ULCODE 标签呢? (滑稽,因为密集)
    • 上个世纪的表?没门。表格用于表格数据。 “坏”表是布局表。但是带有表格数据的表格是正确的结构。
    猜你喜欢
    • 1970-01-01
    • 2010-11-22
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多