数据网格从几个 xml 文件中读取,因此我动态创建列,并添加了一个模板字段作为最后一列。
使用 RowDataBound 在模板字段中添加一个链接按钮。
Private Sub GridItem_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridItem.RowDataBound
Try
If e.Row.RowType = DataControlRowType.DataRow Then
Dim linkb As New LinkButton
linkb.Text = "Delete"
linkb.ID = "LinkDeleteItem"
linkb.OnClientClick = "javascript:DeleteItem('" & Convert.ToString(e.Row.RowIndex) & "')"
e.Row.Cells(GridItem.Columns.Count - 1).Controls.Add(linkb)
End If
Catch ex As Exception
lblMessage.Text = ex.Message
End Try
End Sub
一切正常。
但是,当我单击网格视图外的按钮以打开一个窗口以向网格添加新项目时,链接按钮消失了。但是柱子还在。
如果我只是关闭新窗口而不保存新数据(这将提示网格重新绑定),则该列保持为空。我必须重新加载网格视图才能显示链接按钮。
是因为链接按钮是在行数据绑定上创建的吗?我应该如何解决这个问题?