CurrentRowIndex

21/06/2006 - 20:03 por Pedro Rivera | Informe spam
1- Tengo un DataGrid (dtg) y un DataSet (ds) con un DataTable (dt) y hago lo
siguiente:

dtg.DataSource=ds;
dtg.DataMember=dt.TableName;

La propiedad dtg.CurrentRowIndex, me devuelve el indice de la fila
actualmente activa.

Al eliminar una fila, dicha propiedad ya no "funciona", debido a que, para
calcular su valor, sigue tomando en cuenta a la fila eliminada, aun y cuando
no la muestra.

Esto se resuelve haciendo dg.DataSource=dt.DefaultView y configurando dicho
DataView pero, ¿que pasa si el dtg.DataMember no es una tabla sino una
DataRelation? ¿Como puedo obtener SIEMPRE el indice correcto de fila, sin
importar el DataMember o el DataSource?


2- Insisto con lo de Insertar registros, como se hace para insertar una fila
en determinada posicion de una tabla, ya que el metodo Tabla.Insert() no me
funciona.
 

Leer las respuestas

#1 Vyacheslav Popov
21/06/2006 - 20:57 | Informe spam
Hola Pedro,

1. Esto se debe a que no se elimina físicamente el registro sino se marca
como borrado (mira la propiedad DataViewRowState). Para que los cambios sean
realizados tienes que ejecutar el método AcceptChanges()

2. No se puede insertar una fila en una posición como si se tratara de un
array. Las filas están ordenados por el campo clave, por eso en función de
la clave el registro aparece en un sitio o en otro.

Saludos.

"Pedro Rivera" escribió en el
mensaje news:
1- Tengo un DataGrid (dtg) y un DataSet (ds) con un DataTable (dt) y hago
lo
siguiente:

dtg.DataSource=ds;
dtg.DataMember=dt.TableName;

La propiedad dtg.CurrentRowIndex, me devuelve el indice de la fila
actualmente activa.

Al eliminar una fila, dicha propiedad ya no "funciona", debido a que, para
calcular su valor, sigue tomando en cuenta a la fila eliminada, aun y
cuando
no la muestra.

Esto se resuelve haciendo dg.DataSource=dt.DefaultView y configurando
dicho
DataView pero, ¿que pasa si el dtg.DataMember no es una tabla sino una
DataRelation? ¿Como puedo obtener SIEMPRE el indice correcto de fila, sin
importar el DataMember o el DataSource?


2- Insisto con lo de Insertar registros, como se hace para insertar una
fila
en determinada posicion de una tabla, ya que el metodo Tabla.Insert() no
me
funciona.

Preguntas similares