您好,
我这里有问题。我有一个数据表,数据显示在listview中。这是后面的代码函数。
Protected Sub ListView1_ItemCommand(ByVal sender As Object, ByVal e As ListViewCommandEventArgs)
If (e.CommandName) = "Sort" Then
Dim txteno As Label = DirectCast(e.Item.FindControl("lblID"), Label)
/* Error here Dim deletecommand As String = "delete from dt where ID=" & Convert.ToInt32(txteno.Text)
Session("dt").DeleteCommand = deletecommand
End If
End Sub
当我按下删除按钮时出现错误,说“输入字符串格式不正确”。谁知道这里有什么问题?
答案 0 :(得分:0)
问题是由
引起的 Convert.ToInt32(txteno.Text)
并且txteno.Text
的值不是有效整数。
尝试运行代码时txteno.Text
的值是多少?
作为解决方法,请改用Integer.TryParse
。
Dim number As Integer
If Integer.TryParse(txteno.Text, number) Then
' Do the delete....
End If
答案 1 :(得分:0)
您的问题是,您无法使用e.Item.FindControl
方法访问ListView_ItemCommand
。
FindControl
仅适用于渲染时间,即ListView_ItemDataBound
方法。
一种可能的解决方案是从列表中或直接从数据库中检索项目。为此,您可以使用e.Item.DataItemIndex
来检索行的ID。