Cabeceras de un datagrid

10/05/2004 - 12:19 por diego | Informe spam
Hola a todos,
Tengo un datagrid, del que no se cual es la select que lo ha creado, ya que
cada vez lo crea una distinta, pero quiero saber a que columna corresponde
cada campo. Alguien me podría dar una idea de como se puede hacer esto.
Muchas gracias

Preguntas similare

Leer las respuestas

#1 Tristan
10/05/2004 - 17:44 | Informe spam
No se si te entiendo muy bien...

En realidad, el DataSource no tiene por que ser un DataSet sino que puede
ser un número infinito de clases, pero las más habituales son DataSet,
DataTable y DataView.

Suponiendo que utilices DataSet como DataSource, ésta clase es en realidad
una colección de DataTable. Normalmente habrás seleccionado en el grid la
tabla concreta mediante la propiedad DataMember. Una vez determinado cual es
el DataTable, esta clase tiene una propiedad Columns, que es una colección
de columnas.

Suponiendo todas esas cosas, el código para mostrar las columnas sería así:

DataSet ds = dataGrid1.DataSource as DataSet;
DataTable tabla = ds.Tables[dataGrid1.DataMember];
foreach (DataColumn columna in tabla.Columns)
MessageBox.Show(columna.ColumnName);


Si quieres un código más genérico, puedes usar reflection para descurbir
cuales son las propiedades públicas del objeto, que es más o menos lo que
hace DataGrid realmente. También puedes acelerarlo examinando las interfaces
que cumple el objeto, por ejemplo ITypedList.


Otra solución es asociar al datagrid un tablestyle y observar las columnas
generadas.






Juan Carlos Badiola
MVP - C#
"diego" escribió en el mensaje
news:skJnc.273224$
He visto que dentro del dataSource, que es un dataSet, puedo conseguir el
esquema con GetXmlSchema, pero luego tendría que traducir el Xml...


supongo
que habrá una forma mas facil, no?
Gracias

"diego" escribió en el mensaje
news:TGInc.272702$
> Hola a todos,
> Tengo un datagrid, del que no se cual es la select que lo ha creado, ya
que
> cada vez lo crea una distinta, pero quiero saber a que columna


corresponde
> cada campo. Alguien me podría dar una idea de como se puede hacer esto.
> Muchas gracias
>
>


Respuesta Responder a este mensaje
#2 diego
11/05/2004 - 09:14 | Informe spam
Muchas gracias,
Efectivamente era esto.

"Tristan" escribió en el mensaje
news:
No se si te entiendo muy bien...

En realidad, el DataSource no tiene por que ser un DataSet sino que puede
ser un número infinito de clases, pero las más habituales son DataSet,
DataTable y DataView.

Suponiendo que utilices DataSet como DataSource, ésta clase es en realidad
una colección de DataTable. Normalmente habrás seleccionado en el grid la
tabla concreta mediante la propiedad DataMember. Una vez determinado cual


es
el DataTable, esta clase tiene una propiedad Columns, que es una colección
de columnas.

Suponiendo todas esas cosas, el código para mostrar las columnas sería


así:

DataSet ds = dataGrid1.DataSource as DataSet;
DataTable tabla = ds.Tables[dataGrid1.DataMember];
foreach (DataColumn columna in tabla.Columns)
MessageBox.Show(columna.ColumnName);


Si quieres un código más genérico, puedes usar reflection para descurbir
cuales son las propiedades públicas del objeto, que es más o menos lo que
hace DataGrid realmente. También puedes acelerarlo examinando las


interfaces
que cumple el objeto, por ejemplo ITypedList.


Otra solución es asociar al datagrid un tablestyle y observar las columnas
generadas.






Juan Carlos Badiola
MVP - C#
"diego" escribió en el mensaje
news:skJnc.273224$
> He visto que dentro del dataSource, que es un dataSet, puedo conseguir


el
> esquema con GetXmlSchema, pero luego tendría que traducir el Xml...
supongo
> que habrá una forma mas facil, no?
> Gracias
>
> "diego" escribió en el mensaje
> news:TGInc.272702$
> > Hola a todos,
> > Tengo un datagrid, del que no se cual es la select que lo ha creado,


ya
> que
> > cada vez lo crea una distinta, pero quiero saber a que columna
corresponde
> > cada campo. Alguien me podría dar una idea de como se puede hacer


esto.
> > Muchas gracias
> >
> >
>
>


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