Cita:
Iniciado por hylander2112 Buenos días, me gustaría saber por que me sale este error:
El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index
Este error aparece cuando pagino mi gridview y después elijo un registro(fila) por medio de mi image button que está en el mismo gridview. Sí se llega a capturar el índice de dicha fila....pero aún así me sale ese error.
Desde ya gracias por la ayuda.
PD. Este es el código que estoy utilizando:
Protected Sub grvAdmSited_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles grvAdmSited.RowCommand
Dim objConsulta As New ComWebSaludNT.ClsAdmision
If e.CommandName = "Actualizar" Then
LimpiarActualizarAdmision()
HabilitarControlesActualizacion()
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim Admision As String = grvAdmSited.DataKeys(index).Value.ToString
Dim dt As DataTable = objConsulta.ConsultaAdmision(Admision, "", "", "", "", "")
txtAdmisionMod.Text = dt.Rows(0).Item(0)
txtAutoriAntiMod.Text = dt.Rows(0).Item(1)
End If
End Sub
La solución era que en el commandargument se debía de colocar : CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'
En el código fuente:
Protected Sub grvAdmSited_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles grvAdmSited.RowCommand
Dim objConsulta As New ComWebSaludNT.ClsAdmision
Try
If e.CommandName = "Actualizar" Then
LimpiarActualizarAdmision()
HabilitarControlesActualizacion()
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim selectedRow As GridViewRow = grvAdmSited.Rows(index)
Dim Admision As TableCell = selectedRow.Cells(2)
Dim StrAdmision As String = Admision.Text
Dim dt As DataTable = objConsulta.ConsultaAdmision(StrAdmision, "", "", "", "", "")
txtAdmisionMod.Text = dt.Rows(0).Item(0)
txtAutoriAntiMod.Text = dt.Rows(0).Item(1)
End If
Catch ex As Exception
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "alerta", "<script>alert('" & ex.Message & "')</script>", False)
Finally
If Not objConsulta Is Nothing Then objConsulta.Dispose()
objConsulta = Nothing
End Try
End Sub