maldito DataGrid

23/11/2005 - 05:51 por Maria Agustina Paz | Informe spam
Alguien puede confirmar que no hay NINGUNA forma de relacionar directamente
una determinada fila de un DataGrid, con la fila correspondiente de la
estructura de datos que esta por detras del DataGrid (DataTables, DataView,
Arrays, etc)

Lei toda la documentacion que tengo a mano al respecto, y haciendo pruebas,
y no consigo darme cuenta si hay alguna forma, salvo metodos totalmente
indirectos y falibles (como recorrer la grilla buscando combinaciones
determinadas de campos, etc)

Esto parece una falla grave en un control Winform que en otros aspectos
funciona mas que bien.

Alguien puede dar una pista de cual es la forma. O alguien puede confirmar
si en la nueva version de Visual Studio, el DataGrid esta mas perfeccionado
en este aspecto.


Por otro lado, una ultima pregunta: alguien conoce algun/os otros foros,
igual o mejores que estos, para hacer consultas en castellano sobre el la
plataforma .NET

saludo

Preguntas similare

Leer las respuestas

#6 Imac_man
23/11/2005 - 23:40 | Informe spam
el datagrid es el objeto peor hecho de todosdeberian hacer algo en serio
con ese control.

"Lord Voldemort" <@@> escribió en el mensaje
news:OjVZo%
genial?????????????
que tiene de genial el datagrid


<JR> wrote in message news:%
maldita sea la ignorancia, seria mejor cabecera, antes de criticar tan
duramente al genial Datagrid


Existen varias formas de acceder al contenido de la grid desde código,
dependiendo del evento

Busca información del DataRowView

otra opción es e.item.cells(x).text

Saludos,

Xus


"Maria Agustina Paz" ha
escrit en el missatge dels grups de
discussió:
Alguien puede confirmar que no hay NINGUNA forma de relacionar
directamente
una determinada fila de un DataGrid, con la fila correspondiente de la
estructura de datos que esta por detras del DataGrid (DataTables,
DataView,
Arrays, etc)

Lei toda la documentacion que tengo a mano al respecto, y haciendo
pruebas,
y no consigo darme cuenta si hay alguna forma, salvo metodos totalmente
indirectos y falibles (como recorrer la grilla buscando combinaciones
determinadas de campos, etc)

Esto parece una falla grave en un control Winform que en otros aspectos
funciona mas que bien.

Alguien puede dar una pista de cual es la forma. O alguien puede
confirmar
si en la nueva version de Visual Studio, el DataGrid esta mas
perfeccionado
en este aspecto.


Por otro lado, una ultima pregunta: alguien conoce algun/os otros foros,
igual o mejores que estos, para hacer consultas en castellano sobre el
la
plataforma .NET

saludo








Respuesta Responder a este mensaje
#7 Tristan
24/11/2005 - 00:32 | Informe spam
No creo que vayas a encontrar ningún control que haga exactamente lo que tú
necesites. La ventaja del datagrid de .net es que es enormemente extensible.

Obviamente los que se dedican a crear componentes (y en algunos casos a
venderlos) tienen que crear componentes que hagan algo más cosas que los que
ya existen en el framework, si no sería un trabajo absurdo. De ahí a decir
que el combo está incompleto...

Precisamente la grandeza del combo u otros controles de .net es que permite
con relativa facilidad ampliar sus posibilidades. Muchos de esos controles
que crean otros programadores se aprovechan de eso. Personalmente me alegro
de que MS haya dedicado más esfuerzo a dar flexibilidad a sus controles que
a dar capacidades finales que siempre podrían quedar escasas para un uso
concreto. El caso del datagrid es un buen ejemplo, la clase
DataGridColumnStyle se puede usar como base para crear cualquier tipo de
editor de datos del datagrid. En lugar de una solución cerrada, el framework
ofrece pocos editores de columnas, pero te da flexibilidad total para crear
los tuyos propios o utilizar el que otros programadores hayan creado.

El combo por ejemplo no lleva nada programado para mostrar imágenes o
incluir varias columnas, pero admite un modo OwnerDraw con el que puedes
mostrar cualquier cosa que se te ocurra. Si quieres un control que haga
cosas más específicas siempre puedes utilizar uno gratuito o de pago, pero
piensa que casi todos ellos se están aprovechando de la flexibilidad del
combo original.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#8 Tristan
24/11/2005 - 00:39 | Informe spam
Maria, ahora no puedo ponerte un ejemplo por que no tengo tiempo. Espero
poder escribirte mañana un ejemplo para hacer lo que creo que quieres.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#9 Lord Voldemort
24/11/2005 - 15:05 | Informe spam
ok Tristan..
creo que has explicado bien ..
comprendo ahora, siempre me pregunte eso..
gracias..


"Tristan" wrote in message
news:
No creo que vayas a encontrar ningún control que haga exactamente lo que
tú necesites. La ventaja del datagrid de .net es que es enormemente
extensible.

Obviamente los que se dedican a crear componentes (y en algunos casos a
venderlos) tienen que crear componentes que hagan algo más cosas que los
que ya existen en el framework, si no sería un trabajo absurdo. De ahí a
decir que el combo está incompleto...

Precisamente la grandeza del combo u otros controles de .net es que
permite con relativa facilidad ampliar sus posibilidades. Muchos de esos
controles que crean otros programadores se aprovechan de eso.
Personalmente me alegro de que MS haya dedicado más esfuerzo a dar
flexibilidad a sus controles que a dar capacidades finales que siempre
podrían quedar escasas para un uso concreto. El caso del datagrid es un
buen ejemplo, la clase DataGridColumnStyle se puede usar como base para
crear cualquier tipo de editor de datos del datagrid. En lugar de una
solución cerrada, el framework ofrece pocos editores de columnas, pero te
da flexibilidad total para crear los tuyos propios o utilizar el que otros
programadores hayan creado.

El combo por ejemplo no lleva nada programado para mostrar imágenes o
incluir varias columnas, pero admite un modo OwnerDraw con el que puedes
mostrar cualquier cosa que se te ocurra. Si quieres un control que haga
cosas más específicas siempre puedes utilizar uno gratuito o de pago, pero
piensa que casi todos ellos se están aprovechando de la flexibilidad del
combo original.

Juan Carlos Badiola
MVP - C#

Respuesta Responder a este mensaje
#10 Tristan
24/11/2005 - 16:43 | Informe spam
Bueno, ahora tengo tiempo para responderte.

Vamos a ver si entiendo lo que quieres, Maria. Si lo que pretendes es
obtener la fila del DataTable que está seleccionada en el DataGrid, o más
bien en el currency manager asociado al datagrid, puedes hacer esto:

Dim fila As DataRowView = Me.BindingContext(DataGrid1.DataSource).Current

"fila" será entonces un DataRowView (una fila de un DataView). Podrás hacer
sobre ella cualquier cosa que harías sobre la fila del DataTable, consultar
campos, eliminar la fila asociada, etc... Esa conversión sólo será posible
cuando el datasource del datagrid sea un DataSet/DataTable. Si utilizas otra
fuente de datos el tipo de Current será el que corresponda a esa fuente de
datos.

Si por alguna razón no te basta con el DataRowView, a partir de él puedes
obtener la fila del DataTable mediante la propiedad Row:

Dim filaBase as DataRow = fila.Row

Espero haber entendido tu pregunta.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida