You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET GridView如何在绑定行之后动态添加行?

解决GridView绑定后在末尾添加动态行的问题

你的问题出在事件选择上——RowCreated是在每一行创建时触发的,这时候GridView的所有数据行还没完全生成,你添加的行自然会插在正在创建的行前面,导致最终出现在绑定行的最上方。

要把动态行加到所有绑定行的后面,你应该改用**DataBound事件**,这个事件会在GridView完成所有数据绑定和行创建后才触发,此时添加行就能保证它出现在末尾。

具体实现代码(VB.NET)

Protected Sub GridView1_DataBound(sender As Object, e As EventArgs) Handles GridView1.DataBound
    ' 创建新的GridView行,样式和数据行保持一致
    Dim newRow As New GridViewRow(0, -1, DataControlRowType.DataRow, DataControlRowState.Normal)
    
    ' 为新行创建单元格,建议和GridView的列数匹配,避免布局错乱
    For colIndex As Integer = 0 To GridView1.Columns.Count - 1
        Dim cell As New TableCell()
        ' 如果需要合并所有列,设置ColumnSpan属性
        If colIndex = 0 Then
            cell.Text = "Text"
            cell.ColumnSpan = GridView1.Columns.Count
        End If
        newRow.Cells.Add(cell)
    Next
    
    ' 获取GridView的底层Table容器
    Dim gridTable As Table = DirectCast(GridView1.Controls(0), Table)
    ' 将新行添加到Table的行集合末尾
    gridTable.Rows.Add(newRow)
End Sub

额外注意事项

  • 如果你的GridView启用了分页,这个动态行只会显示在当前分页的末尾,这是分页机制的正常表现;
  • 代码里设置ColumnSpan是为了让新行的单元格横跨所有列,如果你不需要合并,直接给对应列的单元格赋值即可;
  • 记得移除原来RowCreated事件里的添加行代码,避免重复添加。

内容的提问来源于stack exchange,提问作者Jan Vojtěch Vaníček

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:54:49