我有一个 gridview,它有一个 List (Of MyObject) 作为它的数据源。
gv.DataSource = MyListObject
gv.Databind()
在模板字段下,我有一个按钮配置为从 MyListObject 中删除一条记录,然后重新绑定它。要添加记录,我有以下代码
Protected Sub btnAddRecord_Click(sender As Object, e As EventArgs) Handles btnAddRecord.Click
Dim Customer As New Customer
With Customer
.Name = txtName.Text
.Surname = txtSurname.Text
.....
.ID += MyListObject.Count
End With
MyListObject.Add(Customer)
gv.DataSource = MyListObject
gv.DataBind()
End Sub
这很好用,但是如果需要,我需要允许用户删除记录:
Private Sub gv_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gv.RowCommand
If e.CommandName = "Delete" Then
MyListObject.RemoveAt(e.CommandArgument)
gv.DataSource = Nothing
gv.DataBind()
gv.DataSource = MyObjectList
gv.DataBind()
upnl.UpdateMode = UpdatePanelUpdateMode.Conditional
upnl.Update()
End If
End Sub
当我单击按钮时,它会删除记录但不会刷新数据。我的意思是当添加记录时,我将 ID 分配为行 ID,然后使用该 ID 删除记录。由于 List 和 Gridview 值现在不同步,我将数据源设置为空并重新绑定它,以便我将重置值并且 ID 将是正确的 - 但这并不像我预期的那样工作。
谁能告诉我哪里出错以及如何解决这个问题?