Posición en DataGrid y en DataSet

17/03/2005 - 19:47 por Carlos Vigliola \(ADINET\) | Informe spam
Estimados:

dada una datagrid con datos cargados desde un dataset desearía poder saber
en qué elemento del dataset se encuentra la datagrid al navegar por la
datagrid.
Esto es porque si en una grilla se dan altas de registros en un formulario
aparte, quisiera que el usuario después de dar el alta viera la grilla
posicionada en el registro que acaba de dar de alta.
He probado agregar índices a la grilla y usar el FIND pero me devuelve la
fila de la grilla y el dataset no cambia de registro.

Desde ya, muchas gracias.

Preguntas similare

Leer las respuestas

#1 Carlos Durán Urenda
18/03/2005 - 15:24 | Informe spam
mmmm.

primero que nada, el dataset no tiene posicion, ya que no alberga registros,
el dataset te almacena tablas, relaciones, etc.. en realidad es como una
pequeña base de datos en memoria
quien alberga los registros es el datatable, y aun asi, en .Net no se maneja
el concepto de registro actual.

por otra parte es posible que los registros del grid no coincidan con los
del datatable, debido a que el grid puede ordenarse y el datatable no. en
realidad el datagrid te mostrará la informacion a partir del defaultview del
datatable, el defaultview puede filtrarse y ordenarse, de forma que por
ejemplo el elemento 5 del defaultview (el cual ves en el datagrid)
corresponda con el elemento 20 del datatable.

en resumidas cuentas deberias hacer es... utilizar un Dataview que apunte al
DefaultView de tu DataTable (contenida en tu Dataset)

algo mas o menos asi...

Dim DV as Dataview
Dim DRV as DataRowView
DV=TuDataset.Tables("TuTabla").DefaultView

TuDatagrid.DataSource=DV

al trabajar con el datagrid, puedes ordenar y filtrar la tabla, debido a que
el DV apunta al DefaultView de tu tabla, este reflejará todos los cambios
hechos en el orden y filtrado.


puedes obtener el renglon exacto utilizando

DRV=DV(TuDatagrid.CurrentRowIndex)

Saludos
Carlos Durán

"Carlos Vigliola (ADINET)" escribió en el mensaje
news:
Estimados:

dada una datagrid con datos cargados desde un dataset desearía poder saber
en qué elemento del dataset se encuentra la datagrid al navegar por la
datagrid.
Esto es porque si en una grilla se dan altas de registros en un formulario
aparte, quisiera que el usuario después de dar el alta viera la grilla
posicionada en el registro que acaba de dar de alta.
He probado agregar índices a la grilla y usar el FIND pero me devuelve la
fila de la grilla y el dataset no cambia de registro.

Desde ya, muchas gracias.


Respuesta Responder a este mensaje
#2 Carlos Vigliola \(ADINET\)
19/03/2005 - 13:02 | Informe spam
Estimado Carlos:

he seguido ya todos los pasos que explicas en tu mail y funciona muy bien.
Sigo con el problema que no puedo localizar un registro agregado porque no
tengo un cursor que indique la posición actual. Eso es así, no tiene vuelta?
Por otra parte, para hacer el ingreso de renglones de una factura: ¿qué es
más recomendable?.
Trabajar con XML con un esquema o usar un dataset e ir agregando filas?.
¿Cómo hago para que el datagrid permita editar las columnas cuando se carga
un dataset?.

Gracias mil.


"Carlos Durán Urenda" escribió en el mensaje
news:
mmmm.

primero que nada, el dataset no tiene posicion, ya que no alberga


registros,
el dataset te almacena tablas, relaciones, etc.. en realidad es como una
pequeña base de datos en memoria
quien alberga los registros es el datatable, y aun asi, en .Net no se


maneja
el concepto de registro actual.

por otra parte es posible que los registros del grid no coincidan con los
del datatable, debido a que el grid puede ordenarse y el datatable no. en
realidad el datagrid te mostrará la informacion a partir del defaultview


del
datatable, el defaultview puede filtrarse y ordenarse, de forma que por
ejemplo el elemento 5 del defaultview (el cual ves en el datagrid)
corresponda con el elemento 20 del datatable.

en resumidas cuentas deberias hacer es... utilizar un Dataview que apunte


al
DefaultView de tu DataTable (contenida en tu Dataset)

algo mas o menos asi...

Dim DV as Dataview
Dim DRV as DataRowView
DV=TuDataset.Tables("TuTabla").DefaultView

TuDatagrid.DataSource=DV

al trabajar con el datagrid, puedes ordenar y filtrar la tabla, debido a


que
el DV apunta al DefaultView de tu tabla, este reflejará todos los cambios
hechos en el orden y filtrado.


puedes obtener el renglon exacto utilizando

DRV=DV(TuDatagrid.CurrentRowIndex)

Saludos
Carlos Durán

"Carlos Vigliola (ADINET)" escribió en el


mensaje
news:
> Estimados:
>
> dada una datagrid con datos cargados desde un dataset desearía poder


saber
> en qué elemento del dataset se encuentra la datagrid al navegar por la
> datagrid.
> Esto es porque si en una grilla se dan altas de registros en un


formulario
> aparte, quisiera que el usuario después de dar el alta viera la grilla
> posicionada en el registro que acaba de dar de alta.
> He probado agregar índices a la grilla y usar el FIND pero me devuelve


la
> fila de la grilla y el dataset no cambia de registro.
>
> Desde ya, muchas gracias.
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida