要在GridView中使用多个列的数据

时间:2013-12-17 18:12:48

标签: c# asp.net gridview

我正在尝试将GridView填充为如下图所示:

enter image description here

这就是我的GridView目前的样子。

enter image description here

代码:

<asp:GridView runat="server" ID="GridView1" CssClass="wiretable" AutoGenerateColumns="False"
   BorderColor="#E8CC6B" BorderStyle="Solid" BorderWidth="1px"
   Width="100%" ShowFooter="False" OnRowDataBound="GridView1_RowDataBound">
   <Columns>
        <asp:BoundField DataField="Name" HeaderText="Attendees" />
   </Columns>
</asp:GridView>

2 个答案:

答案 0 :(得分:1)

由于你需要一个表结构,我建议使用转发器而不是网格来更好地控制输出,如下所示:

标记:

<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
        <table>
            <tr>
                <th colspan="2">Attendees</th>
            <tr>  
            <tr>     
    </HeaderTemplate>
    <ItemTemplate>
        <%# (Container.ItemIndex != 0 && Container.ItemIndex % 2 == 0) ? @"</tr><tr>" : string.Empty %> 
        <%# string.Format("{0}{1}{2}", @"<td>", Container.DataItem, @"</td>") %>
    </ItemTemplate>
    <FooterTemplate>
            </tr>
        </table>
    </FooterTemplate>
</asp:Repeater>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    // Only bind repeater initially, not every post back
    if (!IsPostBack)
    {
        Repeater1.DataSource = GetDataFromDatabase();
        Repeater1.DataBind();
    }
}

  

注意:您可以将任何必要的CSS应用于表格标题,行和单元格,以使其看起来像您想要的那样。

答案 1 :(得分:0)

寻找:

<HeaderTemplate>
    <table>
        <tr>
            <th colspan="2">Attendees</th>
        <tr>  
        <tr>     
</HeaderTemplate>

所以HeaderTemplate标签的属性。