0

你好,

我这里有问题。我得到了一个数据表,数据显示在列表视图中。这是后面的代码功能。

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

事情是当我按下删除按钮时出现错误,说“输入字符串的格式不正确”。有人知道这里有什么问题吗?

4

2 回答 2

0

您的问题是您无法e.Item.FindControl从该ListView_ItemCommand方法访问。

FindControl唯一适用于渲染时间,即在方法ListView_ItemDataBound中。

一种可能的解决方案是从列表中或直接从数据库中检索项目。为此,您可以使用e.Item.DataItemIndex来检索行的 id。

于 2013-03-18T10:05:21.360 回答
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
于 2013-03-18T09:53:49.150 回答