CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: NoneTa en Viernes 25 de Agosto de 2006, 01:49
Título: Re: Problema Con Datagridview
Publicado por: NoneTa en Viernes 25 de Agosto de 2006, 01:49
Estoy cargando datos desde una ventana de búsqueda hacia otra ventana que contiene un datagridview.
El datagridview esta vacio y al añadir una fila no tengo problema alguno, pero al añadir la siguiente fila me la crea arriba de la que ya existia !!!
Es decir: Añadir Primera Vez fila 1 Añadir Segunda Vez fila 2 fila 1 Añadir Tercera Vez fila 3 fila 2 fila 1
Cuando la lógica debería ser Añadir Primera Vez fila 1 Añadir Segunda Vez fila 1 fila 2 Añadir Tercera Vez fila 1 fila 2 fila 3
Ayuda Please :lightsabre:
Título: Re: Problema Con Datagridview
Publicado por: JuanK en Viernes 25 de Agosto de 2006, 14:36
adjunta tu codigo por favor.
Título: Re: Problema Con Datagridview
Publicado por: NoneTa en Viernes 25 de Agosto de 2006, 19:13
sabes q encontre un faq da datagridview q dice q eso es un comportamiento normal del datagridview... se pueden imaginar eso!!!!
si el usuario agrega una fila desd el datagridview la agrega abajo de la q ya existia, pero si uno como programador la quiere agregar se la pone arriba de la q ya existia...
sinceramente est datagridview apesta... pero como ya no me puedo regresar a .Net 2003 xq ya avanze demasiado en 2005, tengo q ver como lo soluciono
:angry:
Título: Re: Problema Con Datagridview
Publicado por: JuanK en Viernes 25 de Agosto de 2006, 19:21
adjunta tu codigo y ya veremos.
Título: Re: Problema Con Datagridview
Publicado por: NoneTa en Viernes 25 de Agosto de 2006, 20:05
DataGridViewColumn newCol1 = new DataGridViewColumn(newCell); newCol1.Name = "CODIGO"; this.dtg_llenar_pedido.Columns.Add(newCol1);
DataGridViewColumn newCol2 = new DataGridViewColumn(newCell); newCol2.Name = "DESCRIPCION"; this.dtg_llenar_pedido.Columns.Add(newCol2);
DataGridViewColumn newCol3 = new DataGridViewColumn(newCell); newCol3.Name = "UNIDAD"; this.dtg_llenar_pedido.Columns.Add(newCol3);
DataGridViewColumn newCol4 = new DataGridViewColumn(newCell); newCol4.Name = "CANTIDAD"; this.dtg_llenar_pedido.Columns.Add(newCol4);
Se crean las columnas, agrego las celdas y cargo los datos en las celdas de la fila codigo, descripcion, unidad, cantidad vienen de otra ventana con datos.
Luego verifico si ya existen datos o una fila en el DGV, para hacer el nuevo ingreso:
DataGridViewRow fila = new DataGridViewRow();
for (int i = 0; i < 3; i++) {
fila.Cells.Add(new DataGridViewTextBoxCell());
}
this.dtg_llenar_pedido.Rows.Add(fila);
y ya esta, me la crea pero como si fuera la primera fila y la q era primera pasa a ser segunda... en vez de poner la nueva fila al final.
ya probe con Rows.Insert y me dice q estoy fuera de rango.
Miren esto:
No row can be added after the row for new records (esta es la q el usuario puede crear desd el datagrid). An InvalidOperationException is raised if this is attempted. As a result, the row for new records is always the last row in the DataGridView control.
:comp:
Título: Re: Problema Con Datagridview
Publicado por: JuanK en Viernes 25 de Agosto de 2006, 20:51
has intentado tener los recors en una coleecion externa a la del datagrid, y manipularlos desde alli, lugo que los tengas como quieres los mandas en forma masiva al grid.
Título: Re: Problema Con Datagridview
Publicado por: NoneTa en Viernes 25 de Agosto de 2006, 20:56
estaba pensando trabajar con un Table a ver si asi puedo manipular los datos y luego mandarlos a cargar al datagrid, algo asi...
como harias eso q me dices abajo ??? recuerda q necesito mantener los datos del DGV al añadir mas datos.
:huh:
Título: Re: Problema Con Datagridview
Publicado por: JuanK en Viernes 25 de Agosto de 2006, 21:06
Lo que pasa es que no soy muy experto en C# repecto al manejo de datos porque digamos que no es la parte que me interesa...
Pero se supone que si un datagrid tiene una coleccion de filas y cada fila tiene una coleccion de celdas, entonces tu puedes crear externamente al datagrid esas colecciones y manipularlas a tu antojo, de tal forma que una vez las modifiques como gustes simplemente las vuelves a asignar al datagrid.
Ejemplo en psudocodigo o algo asi..
Código: Text
DataGridRowCollection dr;
dr = Datagrid.Rows
...
...
...
con eso lo que logras es hacer una referencia a las celdas del data grid asi que puedes ya modificarlas directamente.
Otra opcion es
Código: Text
DataGridRowCollection dr;
dr = new DataGridRowCollection
dr[0]=jdcdd
..
..
.
.
.
dr[n]=xxxx
...
...
Datagrid.Rows= dr;
Espero te sea de ayuda. :comp:
Título: Re: Problema Con Datagridview
Publicado por: NoneTa en Viernes 25 de Agosto de 2006, 21:19
tokara... gracias por la ayuda... voy a levantar mis quejas a la Microsoft :angry: