Problema con DataGridView

Hola experto:
Si pudieras ayudarme con VBNet 2005, tengo un Datagridview donde muestro unos datos los cuales son adicionados manualmente, es decir no esta enlazado con un DataSet, al cargar los datos no hay problema, puedo cargar la cantidad que desee, pero cuando recorro el Datagridview me sale el siguiente error:
System.ArgumentOutOfRangeException was unhandled
Message="Value of '220' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'.\r\nParameter name: Value"
He observado que sale cuando me encuentro en el registro cuya posición es el doble de los item max. Que puedo ver en una sola vista del datagridview, es decir los item que me permiten ver el tamaño actual del datagridview, por ejemplo, este error me sale cuando estoy en el item 20 en el Dgv cuyo tamaño me permite ver 10 item, he cambiado el tamaño del Dgv para ver 20 item y me sale el error al al llegar al item 40, le he dado vueltas al asunto pero no sé como solucionarlo.
He probado enlazando el Dgv con un Dataset y ahí si puedo recorrerlo sin problemas sin importar el tamaño del Dgv..
Gracias.

1 Respuesta

Respuesta
1
Lo mejor para evitar esos problemas es siempre crear un dataset o unm datatable, llenar el datatable (por código) y luego si enlazarlo con el datagridview.
Con ello también se pueden usar una vez los métodos de paginación y ordenamiento.
Andres R.
Saludos Andres, gracias por contestar, mira en este caso estoy usando un dgv no enlazado por que al traer los datos en un dataset antes de mostrarlo en el dgv le hago algunos cambios, por ejemplo, en un campo Estado (tengo tres opciones) lo muestro con una imagen flechas de color por opciones), en un campo Nombre (de un equipo) lo muestro pero agregándole otros datos.
No importa, mira lo que debes hacer es esto:
Asumamos que tu ya traes los datos y los tienes en un dataset llamado dts.
Debes hacerle todos los cambios a la tabla que contiene el data set (si solo trae una o dos, no importa)
Entonces si necesitas agregar más columnas o cambiar valores entones haces las modifica sobre esa tabla, ejemplo
dts.tables[0].columns.add(new datacolumn("Email"));
y luego modificas los registros
for each(datarow f in dst.tables[0].rows)
{
f["Email"]="";
f["Comision"]=Convert.ToDouble(f["Comision"])/100;
}
Y así modificas cada cosa que necesites, es mejor siempre armar el dataset o el datatable y luego si enlazarlo con el grid.
Andres R.
Saludos, Andres, la verdad no lo había intentado así, lo voy a probar y te comento.
Gracias.
OK
Si todo sale bien, te recomiendo que

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas