No ordena Datatable cuando ordeno Grid

21/08/2004 - 16:30 por Davis Godoy Torres | Informe spam
Lo que se ve en el Grid no es el mismo orden como esta en
el DataTable si ordenas los registros haciendo click en la
cabecera del Grid de una de las columnas

Por ejemplo

Tengo el siguiente DataTable enlazado a un Grid llamado
Grid1

Codigo Descripcion
1 A
2 B
3 C > Mi DataTable
4 D
5 E

Y asi se ve mi Grid

Codigo Descripcion
1 A
2 B
3 C
4 D
5 E


Ahora si quiero mostrar el valor B en un msgbox lo que
hago es:


MsgBox(dsPrueba.Tables("Mitabla").Rows
(Me.Grid1.CurrentCell.RowNumber).Item"Descripcion").ToStrin
g)


Y se muestra el dato correcto: el valor B



Pero ahora ordenemos el grid por Codigo descendentemente,
se veria asi

Codigo Descripcion
5 E
4 D
3 C
2 B
1 A


Ahora si quiero mostrar el valor D en un msgbox haria lo
mismo

MsgBox(dsPrueba.Tables("Mitabla").Rows
(Me.Grid1.CurrentCell.RowNumber).Item"Descripcion").ToStrin
g)

Pero se muestra no el valor D sino el valor B

¿Por que?

Segun creo yo cuando ordenamos el Grid solo se ordena
visualmente el control pero sigue intacto el DataTable y
por eso me sigue mostrando el valor B.

Claro yo pudiera coger directamente el valor de la celda
para evitar problemas:

Msgbox(Me.Grid1.Item(Me.Grid1.CurrentCell.RowNumber, 1))

Peroooo ¿si el valor que quiero mostrar en el msgbox no
esta mostrado en el grid? Tendria que agarrarlo del mismo
datatable.


Bueno en vista de eso lo que he hecho es crear un
correlativo en el datatable, pero creo que esa no es la
manera.

No se si a algunos de Uds. le a pasado esto y hay alguna
solucion a esto, del tal forma que cuando ordene mi grid
tambien junto con el se ordene mi Datatable.

Ojala alguien pueda ayudarme


Gracias!!!!
.

Preguntas similare

Leer las respuestas

#1 LuisMiguel
21/08/2004 - 17:44 | Informe spam
Buenas
Pues creo que es asi, me parece que en la ayuda, inclusive lo expecifica.
La unica solucion es realizar la busqueda en el datatable

Si no es asi, que alguien me corrija.

Suerte
LuisMiguel
"Davis Godoy Torres" escribió en el mensaje
news:a3de01c4878b$61967230$
Lo que se ve en el Grid no es el mismo orden como esta en
el DataTable si ordenas los registros haciendo click en la
cabecera del Grid de una de las columnas

Por ejemplo

Tengo el siguiente DataTable enlazado a un Grid llamado
Grid1

Codigo Descripcion
1 A
2 B
3 C > Mi DataTable
4 D
5 E

Y asi se ve mi Grid

Codigo Descripcion
1 A
2 B
3 C
4 D
5 E


Ahora si quiero mostrar el valor B en un msgbox lo que
hago es:


MsgBox(dsPrueba.Tables("Mitabla").Rows
(Me.Grid1.CurrentCell.RowNumber).Item"Descripcion").ToStrin
g)


Y se muestra el dato correcto: el valor B



Pero ahora ordenemos el grid por Codigo descendentemente,
se veria asi

Codigo Descripcion
5 E
4 D
3 C
2 B
1 A


Ahora si quiero mostrar el valor D en un msgbox haria lo
mismo

MsgBox(dsPrueba.Tables("Mitabla").Rows
(Me.Grid1.CurrentCell.RowNumber).Item"Descripcion").ToStrin
g)

Pero se muestra no el valor D sino el valor B

¿Por que?

Segun creo yo cuando ordenamos el Grid solo se ordena
visualmente el control pero sigue intacto el DataTable y
por eso me sigue mostrando el valor B.

Claro yo pudiera coger directamente el valor de la celda
para evitar problemas:

Msgbox(Me.Grid1.Item(Me.Grid1.CurrentCell.RowNumber, 1))

Peroooo ¿si el valor que quiero mostrar en el msgbox no
esta mostrado en el grid? Tendria que agarrarlo del mismo
datatable.


Bueno en vista de eso lo que he hecho es crear un
correlativo en el datatable, pero creo que esa no es la
manera.

No se si a algunos de Uds. le a pasado esto y hay alguna
solucion a esto, del tal forma que cuando ordene mi grid
tambien junto con el se ordene mi Datatable.

Ojala alguien pueda ayudarme


Gracias!!!!
.
Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
21/08/2004 - 17:48 | Informe spam
Segun creo yo cuando ordenamos el Grid solo se ordena
visualmente el control pero sigue intacto el DataTable y
por eso me sigue mostrando el valor B.



Lo que se ordena es la vista (DataView) que esta usando el control (por lo
general la vista por defecto que es la propiedad DefaultView del data
table). Lo que debes hacer es tomar el dato de la vista en lugar del
DataTable. Por ejemplo tabla.DefaultView.Item(2) te devuelve el tercer
registro de acuerdo acuerdo al orden en que este la vista.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#3 Davis Godoy Torres
23/08/2004 - 21:58 | Informe spam
Si eso era, lo que se ordena es el dataview y ya me salio

Mas bien gracias.

:) :) :) :)

Segun creo yo cuando ordenamos el Grid solo se ordena
visualmente el control pero sigue intacto el DataTable y
por eso me sigue mostrando el valor B.



Lo que se ordena es la vista (DataView) que esta usando


el control (por lo
general la vista por defecto que es la propiedad


DefaultView del data
table). Lo que debes hacer es tomar el dato de la vista


en lugar del
DataTable. Por ejemplo tabla.DefaultView.Item(2) te


devuelve el tercer
registro de acuerdo acuerdo al orden en que este la vista.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


.

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