2011-09-23 94 views
1

我有一個gridview。是否可以修改gridview,使我可以在列標題中有多行?例如,下面的代碼會在下面的圖片中生成表格。關於ASP.NET gridviews的問題

<asp:GridView ID="productsGridView" Runat="server" DataSourceID="productDataSource" AutoGenerateColumns="False" AllowSorting="True" BorderWidth="2px" 
      BackColor="White" GridLines="None" CellPadding="3" CellSpacing="1" BorderStyle="Ridge" BorderColor="White" AllowPaging="True"> 
    <FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle> 
    <PagerStyle ForeColor="Black" HorizontalAlign="Right" BackColor="#C6C3C6"></PagerStyle> 
    <HeaderStyle ForeColor="#E7E7FF" Font-Bold="True" BackColor="#4A3C8C"></HeaderStyle> 

    <Columns> 
     <asp:BoundField HeaderText="Product" DataField="ProductName" SortExpression="ProductName"></asp:BoundField> 
     <asp:BoundField HeaderText="Unit Price" DataField="UnitPrice" SortExpression="UnitPrice" DataFormatString="{0:c}"> 
      <ItemStyle HorizontalAlign="Right"></ItemStyle> 
     </asp:BoundField> 
     <asp:BoundField HeaderText="Units In Stock" DataField="UnitsInStock" SortExpression="UnitsInStock" DataFormatString="{0:d}"> 
      <ItemStyle HorizontalAlign="Right"></ItemStyle> 
     </asp:BoundField> 
     <asp:BoundField HeaderText="Quantity Per Unit" DataField="QuantityPerUnit"></asp:BoundField> 
    </Columns> 
    <SelectedRowStyle ForeColor="White" Font-Bold="True" BackColor="#9471DE"></SelectedRowStyle> 
    <RowStyle ForeColor="Black" BackColor="#DEDFDE"></RowStyle> 
</asp:GridView> 

enter image description here

此表僅具有在列標題中的一行。我所尋找的是這樣的:

enter image description here

我如何能做到這一點任何想法?這甚至有可能嗎?

+0

出於好奇,爲什麼要在標題中使用多行? – jadarnel27

+0

@ jadarnel27有這個Excel文檔,其中有三行組成文檔的標題。我知道,不是最好的選擇,但我繼承了它。所以我需要製作這個excel文檔的網頁版。 – user489041

+0

謝謝!這很有道理。你必須與你有什麼=) – jadarnel27

回答

2

如果使用TemplateField代替,也可以控制標題模板,也可以是自定義ASPX標記。缺點是必須使用標籤手動顯示數據,而不是使用簡單的BoundField屬性。但是,這也允許您在自定義佈局中佈局數據以符合標題:

<Columns> 
    <asp:TemplateField> 
     <HeaderTemplate> 
      Weight<br /> 
      Date | Time<br /> 
      Product 
     </HeaderTemplate> 
     <ItemTemplate> 
      <asp:Label runat="server" Text='<%#Eval("Weight") %>'></asp:Label><br /> 
      <asp:Label runat="server" Text='<%#Eval("Date") %>'></asp:Label> | 
      <asp:Label runat="server" Text='<%#Eval("Time") %>'></asp:Label><br /> 
      <asp:Label runat="server" Text='<%#Eval("Product") %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 
+0

真棒,這正是我需要的。謝謝 – user489041