在GridView中具有列跨度的标题列

时间:2016-05-10 14:41:22

标签: asp.net vb.net gridview

例如,我希望我的标题如下:

|       Header Column           |      Header Column2      |
|apple|Microsoft|Android|Dell|HP|Targus|Stack Overflow|Acer|

我添加列的VB代码如下:

Dim dt As New DataTable
dt.Clear()
    dt.Columns.Add("apple")
    dt.Columns.Add("Microsoft")
Dim mr As DataRow
    mr = dt.NewRow
    mr("apple") = "Macbook"
    mr("Microsoft") = "Surface Pro"
dt.Rows.Add(mr)
GridView1.DataSource = dt
GridView1.DataBind()

1 个答案:

答案 0 :(得分:2)

这可以在GridView的RowDataBound事件中完成。只需检查当前行是否为标题,如果是,则设置应跨越的单元格。

首先确保GridView处理行数据绑定事件。

<asp:GridView ID="GridView1" runat="server" OnRowDataBound="gridView1_RowDataBound">
    ...
</asp:GridView>

然后,决定应该跨越哪个细胞。之后,隐藏跨越单元格将跨越的单元格。

Protected Sub gridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.Header Then
        e.Row.Cells(0).ColumnSpan = 3
        e.Row.Cells(1).Visible = False
        e.Row.Cells(2).Visible = False
    End If
End Sub

请记住,如果添加或删除任何列,此硬编码可能会导致将来出现问题。