Foros del Web » Programando para Internet » ASPX (.net) »

Problemas con Columnas de un Datagrid que se crean automaticamente

Estas en el tema de Problemas con Columnas de un Datagrid que se crean automaticamente en el foro de ASPX (.net) en Foros del Web. Hola amigos, tengo un problemilla que me parece raro. Tengo un datagrid cuyas columnas se crean en tiempo de ejecución con un select medio dinámico ...
  #1 (permalink)  
Antiguo 21/02/2007, 10:40
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Problemas con Columnas de un Datagrid que se crean automaticamente

Hola amigos, tengo un problemilla que me parece raro. Tengo un datagrid cuyas columnas se crean en tiempo de ejecución con un select medio dinámico que no siempre trae el mismo número de columnas. La cosa es que tengo como 20 columnas en mi datagrid pero en el:

Me.gridResultados.Columns.Count

me sale 0

Y no puedo ver lo que hay en el FooterText de las columnas donde sí hay texto

Si las columnas se crean en tiempo de ejecución no puedo acceder a esta propiedad. Es la primera vez que trabajo con un datagrid en este modo
  #2 (permalink)  
Antiguo 21/02/2007, 14:24
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

Si el DtaGrid está "bindeado" no es este el que tiene columnas sino el objeto al que lo hayas bindeado (Dataset, DataTable, DataView, etc)
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 21/02/2007, 15:28
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

HOla seb, gracias por contestar. Podrías especificar exactamente a lo que te refieres con bindeado, es que tengo internet limitado y no tengo acceso a la página del link
  #4 (permalink)  
Antiguo 21/02/2007, 15:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

Que hayas llamado previamente al método DataBind del DataGrid y que tengas un DataSource válido

Código:
DataView dataView = item.List();
			if (dataView != null && dataView.Count > 0)
			{
				listDataGrid.Visible = true;
				listDataGrid.DataSource = dataView;
				listDataGrid.DataBind();
			}
			else
			{
				listDataGrid.Visible = true;
				listDataGrid.DataSource = dataView;
				listDataGrid.DataBind();
			}

...por aca un ciclo para recorrer el DataGrid

Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 21/02/2007, 15:52
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

Claro, si le hago un databind al datagrid, cuyo datasource es un dataset.

Las columnas las tengo en el dataset y en el datagrid. Tan solo que luego de llenar el grid se calculan unos totales con unas formulas medias raras, y los resultados se muestran en el footer del datagrid, entonces yo quería acceder al footer del datagrid paral lo cual yo ponía:

Me.gridResultados.Columns(12).FooterText

donde me salía que la columna 12 del datagrid no existe, es más, que no tenía columnas ya que la propiedad count tiene el valor de cero. He utilizado antes la propiedad columns(indice) por ejemplo para ponerle visible true o false y no he tenido problemas.

El código ya estaba hecho, me tocó hacerle cambios, y luego de hacer el databind se recorren las columnas del datagrid, se crean campos template en los que le meten textbox's y checkbox's, de aquí voy a salir amando u odiando al datagrid, del cual pensaba que ya sabía mucho. El código es bastante y talvez algo por allí interfiere en lo que pretendía hacer
  #6 (permalink)  
Antiguo 21/02/2007, 16:03
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

Pero a ver...el dataGrid tiene items, esos items tienen cells, a lo mejor por ahi esta el error:

Código:
gridResultados.Items.Count ;
gridResultados.Items[i].Cells[j];
A lo mejor si pones un poco de codigo podemos ver que esta pasando...


Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 23/02/2007, 17:40
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

Develper9, solo un comentario, recuerda que al utilizar un grid y generar las columnas de forma dinámica (AutoGenerateColumns="true") el grid no pierde state en cliente pero a nivel server no tienes el tamaño físico de colums or rows.

Por lo tanto una forma es manter por ejemplo en session tu contenedor de datos (dataset, datatable, list, etc..etc) para que al generar el postback recuperes ese valor y hagas el count sobre tu contenedor y no el count del grid.

Aunque otra forma es rebindear el grid (en el page init por ejemplo) para que en cada postback ahi si puedas recuperar la info que necesitas,

esper haberme dado a explicar.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #8 (permalink)  
Antiguo 26/02/2007, 13:00
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: Problemas con Columnas de un Datagrid que se crean automaticamente

Cita:
Iniciado por u_goldman Ver Mensaje
Pero a ver...el dataGrid tiene items, esos items tienen cells, a lo mejor por ahi esta el error:

Código:
gridResultados.Items.Count ;
gridResultados.Items[i].Cells[j];
A lo mejor si pones un poco de codigo podemos ver que esta pasando...


Salud
HOla golman, chuzo el código es mucho, ya estaba hecho y yo aplico abstracción, NPI de que es lo que hace, solo lo uso

Cita:
Iniciado por RootK Ver Mensaje
Develper9, solo un comentario, recuerda que al utilizar un grid y generar las columnas de forma dinámica (AutoGenerateColumns="true") el grid no pierde state en cliente pero a nivel server no tienes el tamaño físico de colums or rows.
Hola rootk, bueno despejaste la duda que tenía, lo que necesitaba era obtener el valor del footer de una columna, la cual se calculaba con unas fórmulas medias raras por lo que no me quería meter a analizar como obtener ese valor porque ya lo tenía en el grid, me tocó analizar la formula y calcular dicho valor nuevamente.

Cita:
Iniciado por RootK Ver Mensaje
Por lo tanto una forma es manter por ejemplo en session tu contenedor de datos (dataset, datatable, list, etc..etc) para que al generar el postback recuperes ese valor y hagas el count sobre tu contenedor y no el count del grid.
El dataset lo tengo, lo que no tenía es el valor resultante de las operaciones hechas en base a uno de los campos del dataset, no me servía de mucho el dataset

Gracias por la atención prestada amigos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:52.