Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] Captura el indice pero está fuera del intervalo,cuando pagino el Gridview

Estas en el tema de Captura el indice pero está fuera del intervalo,cuando pagino el Gridview en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/05/2013, 09:48
Avatar de hylander2112  
Fecha de Ingreso: mayo-2013
Mensajes: 30
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Captura el indice pero está fuera del intervalo,cuando pagino el Gridview

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

Última edición por hylander2112; 30/05/2013 a las 10:01 Razón: Agregar código fuente
  #2 (permalink)  
Antiguo 30/05/2013, 10:57
Avatar de hylander2112  
Fecha de Ingreso: mayo-2013
Mensajes: 30
Antigüedad: 10 años, 10 meses
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

Etiquetas: fuera, gridview, indice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.