Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cambiar filas por columnas en un gridview.

980 views
Skip to first unread message

fer

unread,
Dec 9, 2009, 6:29:01 AM12/9/09
to
Hola,
Tengo un gridview que obtengo a traves de un sqldatasource. Necesito,
cambiar filas por coumnas, osea, lo que ahora tengo por filas obtener los
mismos datos pero en columnas, tambien necesito que se actualice el grid
automaticamente cada cierto tiempo, pero que solo se actualice el grid y no
toda la pagina.

Muchas gracias de antemano.

Saludos

Alberto Poblacion

unread,
Dec 9, 2009, 6:52:13 AM12/9/09
to
"fer" <f...@discussions.microsoft.com> wrote in message
news:01BCB1DB-DFFF-4766...@microsoft.com...

> Tengo un gridview que obtengo a traves de un sqldatasource. Necesito,
> cambiar filas por coumnas, osea, lo que ahora tengo por filas obtener los
> mismos datos pero en columnas,

Si el SqlDataSource está conectado a un Sql Server que sea al menos la
versión 2005, puedes probar a modificar la sentencia SQL poniéndole un PIVOT
para cambiar filas por columnas. Pero esto requiere saber de antemano cuáles
van a ser las columnas. Si no son fijas, tendrías que hacer la operación en
dos veces, trayendo primero los datos y luego construyendo dinámicamente la
sentencia PIVOT. Esto implica que ya no podrías usar el SqlDataSource, a no
ser que toda esta operación la hagas en un procedimiento almacenado en el
servidor.
Claro, que ya puestos a que no te valga el SqlDataSource, puedes
cambiarlo por un ObjectDataSource y dentro de éste hacer con un bucle de
código toda la manipulación de cambiar filas por columnas, por ejemplo,
usando un par de datasets.

> tambien necesito que se actualice el grid
> automaticamente cada cierto tiempo, pero que solo
> se actualice el grid y no toda la pagina.

Una forma fácil de conseguirlo consiste en añadir a la página un
UpdatePanel y meter dentro el grid junto con un Timer de Ajax. Basta con que
le pongas al Timer el intervalo de refresco, y automáticamente recarga con
esa frecuencia lo que haya dentro del UpdatePanel.

Jose A. Fernandez

unread,
Dec 9, 2009, 7:00:05 AM12/9/09
to
Hola Fer

La transpuesta? je (me hiciste acordar a la universidad)
http://es.wikipedia.org/wiki/Matriz_transpuesta

Necesitaras primeramente "recordenar" el datatable que te devuelve el
SqlDataSource, recorrerlos por filas/columnas y transponer en un nuevo
datatable
Al nuevo datatable lo bindeas al gridview


El problema viene dado por el SqlDataSource? como obtener el
Datatable?
Una posible solucion:
Dim dtNuevo = DataTable
Dim dv As DataView = CType(unSqlDataSource.Select
(DataSourceSelectArguments.Empty), DataView)
dtNuevo = dv.Table

Y luego recorres dtNuevo y lo cargas al contenido en un nuevo
datatable...

ALGO MAS DE AYUDA :)
Hace unos años habia un post intitulado: voltear un datagrid o un
gridview
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/browse_thread/thread/6d67a714cead0998


Espero que te sirva de ayuda o guia.
______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja

0 new messages