GridView ImageButton确认和删除记录
GridView ImageButton confirm and delete record
我遇到了一个大问题。我已经设法将javascript添加到我的服务器端,但问题是它没有删除。它没有产生任何错误,所以我不知道从哪里开始:
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If e.CommandName = "cmdDelete" Then
Dim ID As Integer = Convert.ToInt32(e.CommandArgument)
End If
End Sub
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim l As ImageButton = DirectCast(e.Row.FindControl("ImageDelete"), ImageButton)
l.Attributes.Add("onclick", "javascript:return " & "confirm('Are you sure you want to delete this record " & DataBinder.Eval(e.Row.DataItem, "ID") & "')")
End If
End Sub
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
Dim ID As Integer = CInt(GridView1.DataKeys(e.RowIndex).Value)
'dim ID as Integer
con.Open()
'gridview1.rows(e.rowindex).cells(0)
Dim cmd As New SqlCommand("delete from [tblUser] where [ID]=@ID", con)
cmd.Parameters.AddWithValue("@ID", ID)
cmd.ExecuteNonQuery()
con.Close()
End Sub
客户端 <asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:ImageButton ID="ImageDelete" ImageUrl="" runat="server" CommandName="cmdDelete" CommandArgument='<%# Eval("ID") %>'
/>
</ItemTemplate>
</asp:TemplateField>
</Columns
按下ImageDelete
按钮,发生RowCommand
事件。然而,在RowCommand
的事件处理程序中,您没有删除任何内容。另一方面,RowDeleting
事件根本不会发生,因为此事件的正确命令是Delete
,而不是cmdDelete
。
我看到两个可能的修复。首先-将删除操作的代码移动到RowCommand
事件处理程序:
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If e.CommandName = "cmdDelete" Then
Dim ID As Integer = Convert.ToInt32(e.CommandArgument)
con.Open()
Dim cmd As New SqlCommand("delete from [tblUser] where [ID]=@ID", con)
cmd.Parameters.AddWithValue("@ID", ID)
cmd.ExecuteNonQuery()
con.Close()
End If
End Sub
第二-更改命令名称并使用您已经实现的RowDeleting
处理程序:
<asp:ImageButton ID="ImageDelete" ImageUrl="" runat="server" CommandName="Delete" CommandArgument='<%# Eval("ID") %>' />
您还没有在标记中显示您是否将ID作为数据键添加到GridView。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" ...>
我想你可能在删除逻辑中检索ID的方式有问题:
Dim ID As Integer = Convert.ToInt32(GridView1.DataKeys(e.RowIndex)("ID"))
相关文章:
- 使用Rails 3中的AJAX删除记录
- 使用jquery和ajax删除记录
- 尝试使用Promises删除记录
- 如果用户选择离开网页,如何删除记录
- 删除记录确认消息
- 模型没有'在Emberjs中删除记录后不会更新
- 如何在js中从数组中删除记录
- Delete方法不适用于Indexed DB HTML5.它返回成功,但未删除记录
- 从 ExtJs 4.1 存储中删除记录时触发哪些事件
- 为什么使用挖空在确认框中单击“取消”时删除记录
- 如何使用 ajax 删除记录
- 如何在代码点火器框架中删除记录后从图像目录中删除图像
- 如何从 javascript 对象中删除记录
- 有关从数据库中删除记录的确认
- YDN 数据库 按 ID 删除记录 (索引数据库)
- ng资源 使用$delete从查询对象中删除记录
- 从JSON对象Javascript中删除记录
- 如何在剑道网格中添加、更新或删除记录时添加一个隐藏字段
- 在php中使用ajax删除记录而不刷新页面
- 删除记录并刷新Won't始终如一地工作