Index was out of range. Must be non-negative and less than the size of the colle

Iniciado por Guillito, 21 Mayo 2015, 04:48 AM

0 Miembros y 1 Visitante están viendo este tema.

Guillito

Hola, como les va, disculpen que los moleste, me comunico con Uds. a los fines de consultarles sobre el Error que encabeza este foro:

sucede que el mismo se dispara al compilar, y si toco el Edit Item del GridView, el cual arranca en -1, no me soluciona el tema, sino, por el contrario, se aleja de la consecusión de la solución..........

El Error se dispara en esta línea.......(asteriscos y ViewState[]),

El GridView consta de la Columna de Select, y 2 columnas (Año y Sección)........

El tema es saber el por que de este error, y si fuera factible, la forma de solucionarlo.......

Sin mas que agregar, aprovecho la oportunidad de saludarlos muy atte.....

Código (csharp) [Seleccionar]

protected

void GridCurso_SelectedIndexChanged(object sender, EventArgs e)

        {         


// Se obtiene la fila seleccionada del gridview           


GridViewRow row = GridCurso.SelectedRow;           


// Obtengo el id de la entidad que se esta editando           


// en este caso de la entidad Curso


*********ViewState["idCurso"] = Convert.ToInt32(GridCurso.DataKeys[row.RowIndex].Value);*********

           
//int fila = Convert.ToInt32(GridCurso.DataKeys[row.RowIndex].Value);


            CargarData();

        }


El Benjo

No estoy del todo seguro, pero es posible que se deba a que por defecto el control GridView coloca el cursor de la Fila actual en una columna editable por el usuario, es decir que el usuario puede añadir una nueva columna. Intenta deshabilitando la propiedad AllowUserToAddRows y ponle un valor FALSE. Si se soluciona, sabes que el error está ahí. Lo siguiente que puedes hacer es colocar una condición if() y comprobar que el índice no sea -1.

Como recomendación: siempre que utilices un método donde dependas del índice seleccionado en un control, comprueba que el índice sea válido. Saludos.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.