2010-10-10 54 views
0

我想复制StackOverflow's TAG's page,他们有标签(或其他)的列表,并显示他们进几列,第一列是第10个记录,第二列是记录11-> 20 ..等等。如何在ASP.NET MVC视图中将此数据呈现到网格中?

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

我不知道这是什么类型的观点被称为?这是一个网格视图?对我来说,网格视图就像excel工作表一样......所有数据在行中,而列在过滤/排序。

任何人都可以帮忙吗?

回答

0

如果您检查网页的HTML源代码,你会看到使用表它也是如此。你可以用某种网格助手来做到这一点,或者如果你想要的话就直接在视图中。

您可以通过只搞清楚你要多少列,多少项目你想在每行中做到这一点很简单地在视图中。枚举整个结果集,并且每个X项(X是每列最大值)将创建一个新的TD标记。当然,然后确保每页数据不超过X * COLUMNS

但是既然你不想用表来做,这个答案可能不会帮你。

+0

是的,我知道这是一个表(或逸岸,它应该是div的..表是1990年这样的..)..但我希望的一些代码或一些链接到一些教程,可以告诉我,他们如何划分在将数据显示到视图之前将数据放入列中。 – 2010-10-10 05:38:33

+0

表有目的;显示表格数据。这正是:表格数据。这正是表格的用途。 BTW; 'A'标签也是从20世纪90年代开始的......我们应该停止使用它来进行链接吗? – 2010-10-10 05:41:37

+0

:)我不打算进入关于表格与div的辩论:) – 2010-10-10 06:03:13

0

你可以使用一个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来处理这种类型的事情。

+0

您可以使用ListView或Gridview,但我不建议在ASP.NET MVC中这样做。 – 2010-10-10 06:00:47

+0

同意@安德鲁理发师 - 我想尽可能避免经典的asp控制。 – 2010-10-10 06:02:38

+0

@ Pure.Krome,这些是ASP.NET控件,不是Classic。而他们习惯做的就是动态生成HTML,但是如果您宁愿拥有静态代码,那么为什么不直接硬编码表?如果你反对表(这很愚蠢 - 表是表格数据),那么就使用div。 – 2010-10-10 17:49:55

相关问题