Foros del Web » Programación para mayores de 30 ;) » .NET »

Formato de Columas de Datagrid en Tiempo de Ejecución

Estas en el tema de Formato de Columas de Datagrid en Tiempo de Ejecución en el foro de .NET en Foros del Web. Como podría hacer para darle formato a columnas autogeneradas al DataGrid??? Lo que necesito es dar formato a cierta columna del datagrid. Ejemplo a una ...
  #1 (permalink)  
Antiguo 20/10/2004, 15:24
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Formato de Columas de Datagrid en Tiempo de Ejecución

Como podría hacer para darle formato a columnas autogeneradas al DataGrid???

Lo que necesito es dar formato a cierta columna del
datagrid. Ejemplo a una fecha.

Si fueran columnas fijas serían en Data Formatting
Expression lo siguiente: "{0:dd-MM-yyyy}"

Pero como hago esto en tiempo de ejecución puesto que las
columnas se crean dinámicamente.

Agradezco cualquier ayuda

  #2 (permalink)  
Antiguo 20/10/2004, 16:46
Avatar de jose_d  
Fecha de Ingreso: enero-2003
Ubicación: Cali
Mensajes: 220
Antigüedad: 21 años, 3 meses
Puntos: 4
por que no las llamas convertidas desde el select con la funcion convert

ejemplo select CONVERT(varchar(10), CampoFecha, 103) as NombreCampo from Tabla

como funciona el convert

el primer campo es la cantidad de caracteres,
el segundo es el campo fecha,
el tercero es el formato: no encuentro la tabla de campos pero este es
mm/dd/yy

Ojala te sirva y suerte si encuentro la tabla la pongo despues :adios
__________________
El leer te da el poder de mejorar
  #3 (permalink)  
Antiguo 20/10/2004, 17:17
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
Cual es el code que tienes..??
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 21/10/2004, 07:37
Avatar de jose_d  
Fecha de Ingreso: enero-2003
Ubicación: Cali
Mensajes: 220
Antigüedad: 21 años, 3 meses
Puntos: 4
Hola como van eso lo tengo en un SP que me retorna un dataadapter el codigo es el siguiente
Código:
' Creas la consulta 
dim Consulta as string  = "select CONVERT(varchar(10), CampoFecha, 103) as NombreCampo from Tabla"
dim Con as New SqlClient.SqlConnection(Conexion)
SqlAda as New SqlClient.SqlDataAdapter(Tablas, Con)
Dim D AsNew DataSet
SqlAda.Fill(D)
'Defines que las columnas se llenen automaticamente 
Dtgreporte.AutoGenerateColumns=False
'Llenas el datagrid
Dtgreporte.DataSource = D
Dtgreporte.DataBind()
 
con esto no es necesario darle formato al datagrid ya que el formato viene desde la consulta

__________________
El leer te da el poder de mejorar
  #5 (permalink)  
Antiguo 21/10/2004, 09:05
 
Fecha de Ingreso: octubre-2004
Mensajes: 41
Antigüedad: 19 años, 6 meses
Puntos: 0
dentro de las property builder de el datagrid
columnas
data formatting expression colocas el formato que les deseas dar
ej:
{0:c1} CURRENCY CON UN DECIMAL
{0:dd/MM/yyyy} FORMATO DE FECHA
  #6 (permalink)  
Antiguo 21/10/2004, 10:11
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Cita:
Iniciado por jose_d
Hola como van eso lo tengo en un SP que me retorna un dataadapter el codigo es el siguiente
Código:
' Creas la consulta 
dim Consulta as string  = "select CONVERT(varchar(10), CampoFecha, 103) as NombreCampo from Tabla"
dim Con as New SqlClient.SqlConnection(Conexion)
SqlAda as New SqlClient.SqlDataAdapter(Tablas, Con)
Dim D AsNew DataSet
SqlAda.Fill(D)
'Defines que las columnas se llenen automaticamente 
Dtgreporte.AutoGenerateColumns=False
'Llenas el datagrid
Dtgreporte.DataSource = D
Dtgreporte.DataBind()
 
con esto no es necesario darle formato al datagrid ya que el formato viene desde la consulta


Gracias me funcionó sin problemas
  #7 (permalink)  
Antiguo 21/10/2004, 10:13
Avatar de phinojosa  
Fecha de Ingreso: agosto-2004
Ubicación: Guayaquil-Ecuador
Mensajes: 145
Antigüedad: 19 años, 8 meses
Puntos: 2
Cita:
Iniciado por koke_24
dentro de las property builder de el datagrid
columnas
data formatting expression colocas el formato que les deseas dar
ej:
{0:c1} CURRENCY CON UN DECIMAL
{0:dd/MM/yyyy} FORMATO DE FECHA

Esto no me funciona porque las columnas son generadas automáticamente

Esto funcionaría si las columnas fueran fijas.

Gracias de igual forma
  #8 (permalink)  
Antiguo 21/10/2004, 10:29
 
Fecha de Ingreso: octubre-2004
Mensajes: 41
Antigüedad: 19 años, 6 meses
Puntos: 0
prueba algo asi
String.Format("{0:dd/mm/yy}", grilla.Columns(1).ToString)
y los almacenas en una variable
  #9 (permalink)  
Antiguo 21/10/2004, 12:22
 
Fecha de Ingreso: septiembre-2003
Mensajes: 128
Antigüedad: 20 años, 7 meses
Puntos: 0
Tengo el mismo problema y casi que encontre una solucion, logro cambiar propiedades si usar SQL, con el evento ItemDataBound que se diapra por cada fila recuperada al hacer databind().

Private Sub DataGrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

Dim dtsResultadoConsulta As New DataSet
Dim strTipoDato As String
Dim intN As Integer

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

dtsResultadoConsulta = Session("DataSetMuestra")

For intN = 0 To e.Item.Cells.Count - 1
strTipoDato = TypeName(dtsResultadoConsulta.Tables(0).Columns(in tN).DataType.GetType)
e.Item.Cells(intN).HorizontalAlign = HorizontalAlign.Right

Select Case strTipoDato
Case "char"
Case "datetime"
Case "money"
Dim Price As Double = Convert.ToDouble(e.Item.Cells(2).Text)

' Format the value as currency and redisplay it in the DataGrid.
e.Item.Cells(2).Text = Price.ToString("c")

Case "int"

End Select

Next

End If

End Sub


PROBLEMA 1:

Para dar los formatos quiero saber el tipo de datos de un dataset no tipado.
Probe con esto:

strTipoDato = TypeName(dtsResultadoConsulta.Tables(0).Columns(in tN).DataType.GetType)

pero no anda.

PROBLEMA 2:

Ahora obtengo el dataset con una variable se dession, podre obtener e ldataset de otra manera. En el argumento "e".


Gracias, Daniel.
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 00:50.