【发布时间】:2010-10-10 05:31:24
【问题描述】:
我想复制Stack Overflow's Tags page,它们有一个标签列表(或其他)并将它们显示在几列中,第一列是前 10 条记录,第二列是记录 11->20 等.
当然我的数据已经分页了。
我不确定这种视图叫什么?这是网格视图吗?对我来说,网格视图就像 Excel 表格,所有数据都在行中,列用于过滤/排序。
【问题讨论】:
标签: .net asp.net-mvc datagrid
我想复制Stack Overflow's Tags page,它们有一个标签列表(或其他)并将它们显示在几列中,第一列是前 10 条记录,第二列是记录 11->20 等.
当然我的数据已经分页了。
我不确定这种视图叫什么?这是网格视图吗?对我来说,网格视图就像 Excel 表格,所有数据都在行中,列用于过滤/排序。
【问题讨论】:
标签: .net asp.net-mvc datagrid
您可以使用 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 用于此类事情。
【讨论】:
如果您检查该页面的 HTML 源代码,您会看到 SO 使用表格进行操作。您可以使用某种网格助手来做到这一点,或者如果您愿意,也可以直接在视图中。
您可以在视图中非常简单地做到这一点,只需弄清楚您需要多少列,以及每行需要多少项目。枚举整个结果集,每个X 项(X 是每列的最大值)创建一个新的TD 标记。当然,那就保证每页数据不超过X * COLUMNS
但是由于您不想对表格进行此操作,因此此答案可能对您没有帮助。
【讨论】:
A 标签也是 1990 年代的……我们应该停止将它用于链接吗?
UL 或CODE 标签呢? (滑稽,因为密集)