C sharp - Index was out of range. Must be non-negative and less than the size of the collection. C# ASP .NET

   
Vista:
Imágen de perfil de Guillermo

Index was out of range. Must be non-negative and less than the size of the collection. C# ASP .NET

Publicado por Guillermo (48 intervenciones) el 21/05/2015 04:39:38
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.....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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();
 
        }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Index was out of range. Must be non-negative and less than the size of the collection. C# ASP .NET

Publicado por David (59 intervenciones) el 10/06/2015 15:47:54
Después de la línea

1
GridViewRow row = GridCurso.SelectedRow;

Te falta una validación. Algo así:

1
2
if (row == null || (row != null && (row.RowIndex < 0 || row.RowIndex >= GridCurso.Rows.Count)))
     return;

Si GridCurso.Rows.Count no existe, mira a ver con GridCurso.Rows.Length.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar