0

次のコードを使用して、VB.NET のグリッドから値を削除しようとしています。

 Protected Sub gv_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles gv.RowDeleting

            Dim index As Integer = gv.EditIndex

            Dim row As GridViewRow = DirectCast(gv.Rows(e.RowIndex), GridViewRow)

            Dim id As Integer = Convert.ToInt32(gv.DataKeys(e.RowIndex).Value.ToString())

            'Dim Id As Integer = Integer.Parse(DirectCast(gv.Rows(e.RowIndex).FindControl("txtId"), TextBox).Text)

            gc.ExecuteCommand("delete from expence where id= '" & Id & "' ")

            Response.Write("<script type='text/javascript' language='javascript'>alert('Data Updated')</script>")

            gv.EditIndex = -1

            bindGrid()


        End Sub

次のようにオンラインで例外を与えてDim id As Integer = Convert.ToInt32(gv.DataKeys(e.RowIndex).Value.ToString())います:

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

この例外が発生する理由がわかりません。

私を助けてください。

4

1 に答える 1

1

DataKeysgridview でプロパティを定義していないと思います。gridview で定義する必要がありDataKeys="id"ます。

于 2013-07-17T11:10:29.437 に答える