2009-10-28 56 views
6

我在創建可爲每條記錄跨越2行的Gridview時遇到問題。
我試過使用templateFieldheaderTemplateitemTemplates作爲單獨的表,但我不能讓他們正確格式。asp.net Gridview,1記錄跨度兩行

有沒有人知道這個問題更簡單的解決方案?

回答

6

是的,不要使用GridView。 GridView用於顯示錶格數據。你想要什麼不符合這個標準。你可以使用一箇中繼但是我的偏好是新的3.5 ListView

<asp:ListView ID="ListView1" runat="server" > 
    <ItemTemplate> 
    <tr> 
     <td> 
     <%# Eval("Something") %> 
     </td>   
    </tr> 
    <tr> 
     <td> 
     <%# Eval("SomethingElse") %> 
     </td> 
    </tr> 
    </ItemTemplate> 

    <EmptyDataTemplate> 
    <div> 
      No data was returned.</td> 
     </div>   
    </EmptyDataTemplate> 
    <LayoutTemplate>   
      <asp:PlaceHolder ID="itemPlaceholder" runat="server"> 
    </LayoutTemplate> 
</asp:ListView> 
+1

除此之外,在asp.net 4.0中,您不會需要的部分爲ListView,使它變得更加簡單。 – DavidGouge 2009-10-29 09:41:25

+0

列表視圖效果很好。非常感謝你。我唯一要做的就是按列標題排序。 – 2009-10-29 09:43:21

4

你有沒有考慮過使用Repeater而不是GridView? Repeater可能是每條記錄有2行的最簡單方法,您可以更好地控制生成的表格標記,例如

<asp:Repeater runat="server" ID="Repeater1" > 
<HeaderTemplate> 
    <table> 
     <tr> 
      <th>Field 1</th> 
     </tr> 
     <tr> 
      <th>Field 2</th> 
     </tr> 
</HeaderTemplate> 
<ItemTemplate> 
    <tr> 
     <td><%# DataBinder.Eval(Container.DataItem, "field1") %></td> 
    </tr> 
    <tr> 
     <td><%# DataBinder.Eval(Container.DataItem, "field2") %></td> 
    </tr> 
</ItemTemplate> 
<FooterTemplate> 
    </table> 
</FooterTemplate> 
</asp:Repeater>