asp.net - 如何在 ASP.net 代码页中删除 GridView 控件中的选定行?
问题描述
我在 ASP.net 代码页中有以下 VB 代码,当我单击删除链接按钮时,它会删除 GridView 中的每一行。是否可以只删除选定的行?
Protected Sub grvPos_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles grvPos.RowDeleting
Dim cs As String
Dim con As iDB2Connection
Dim sql As String
Dim cmd As iDB2Command
Dim valDate As Integer
Dim portCode As String
Dim secCode As String
For Each gr As GridViewRow In grvPos.Rows
valDate = grvPos.DataKeys(gr.RowIndex).Values("VALN_DATE")
portCode = grvPos.DataKeys(gr.RowIndex).Values("PORT_CODE").ToString()
secCode = grvPos.DataKeys(gr.RowIndex).Values("SEC_CODE").ToString()
cs = ConfigurationManager.ConnectionStrings("ConnectionStringDB2").ConnectionString
con = New iDB2Connection(cs)
sql = "DELETE FROM OPTR_POS_FIX WHERE (VALN_DATE = @valDate) AND (PORT_CODE = @portCode) AND (SEC_CODE = @secCode)"
cmd = New iDB2Command(sql, con)
cmd.Parameters.AddWithValue("@valDate", valDate)
cmd.Parameters.AddWithValue("@portCode", portCode)
cmd.Parameters.AddWithValue("@secCode", secCode)
Try
Using con
con.Open()
cmd.ExecuteNonQuery()
End Using
Catch ex As Exception
Throw
End Try
Next
End Sub
我很感激任何帮助提前谢谢
解决方案
此代码中的For Each
运算符迭代网格的所有行。而不是你必须只获得选定的行。
所以只需删除For Each - Next
循环,然后添加该行
GridViewRow gr = grvPos.Rows[e.RowIndex];
升级版。你是对的,在 vb.net 语法中它将是:
Dim gr As GridViewRow
gr = grvPos.Rows(e.RowIndex)
推荐阅读
- asp.net-core - 使用 Microsoft.Identity.Web 将 Asp.Net Core 2.2 升级到 3.1 - 没有为方案“AzureADJwtBearer”注册身份验证处理程序
- javascript - Discord.js 错误:TypeError:无法读取未定义的属性“通道”
- docker - 如何在不为每个 es 节点声明服务的情况下在 docker swarm 上部署 elasticsearch?
- angular6 - 使用加密令牌查询参数 angular 10
- python - NQueens - 递归回溯问题
- terraform - Handling null with for_each
- amazon-web-services - 日期列与字符串的 Athena 分区投影
- python - 将文本文件读入结构化 2D numpy 数组
- javascript - Bug Child component input to patch reactive form does not update on Oninit
- java - 带有“this”和没有“this”的代码之间的区别