Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/05/2013, 10:57
Avatar de hylander2112
hylander2112
 
Fecha de Ingreso: mayo-2013
Mensajes: 30
Antigüedad: 11 años
Puntos: 0
De acuerdo Respuesta: Captura el indice pero está fuera del intervalo,cuando pagino el Gridview

Cita:
Iniciado por hylander2112 Ver Mensaje
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