2010-10-10 52 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

相關問題