asp.net - GridView 中具有列跨度的标题列

标签 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()

最佳答案

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

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

<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

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

关于asp.net - GridView 中具有列跨度的标题列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141766/

相关文章:

asp.net - JQuery:获取 ASP.NET CheckBoxList 控件中复选框的值/文本/innerHtml

asp.net - UpdatePanel更新无触发按钮

C# 进程无法访问文件 '' ' 因为它正被另一个进程使用

vb.net - 使用 VB.Net 读取和写入 xml 文件

vb.net - 控件在设计时启用的外观?

android - GridView 在按下后退按钮时被清除(当键盘可见时)

javascript - 使用 Javascript 使按钮不可见或可见

.net - 私有(private)嵌套类

java - 如何将可绘制图像放入 gridview 中?

c# - 在 GridView RowDataBound 事件中获取 BoundField 值