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

Formatear Datos de una Columna del Grid

Estas en el tema de Formatear Datos de una Columna del Grid en el foro de .NET en Foros del Web. Hola, mi problema es el siguiente: Me gustaría saber como formatear una columna de datagrid de tipo datetime para que cuando me liste no me ...
  #1 (permalink)  
Antiguo 08/02/2007, 02:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 26
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Formatear Datos de una Columna del Grid

Hola, mi problema es el siguiente:
Me gustaría saber como formatear una columna de datagrid de tipo datetime para que cuando me liste no me salga todo fecha + hora, sino solamente la hora,uso vb.net 2003 y es una aplicación para Pocket PC

Muchas Gracias.
  #2 (permalink)  
Antiguo 09/02/2007, 21:58
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 8 meses
Puntos: 1
Re: Formatear Datos de una Columna del Grid

bueno en vb se escoge la columan clik derecho propiedades y ahi hay una propiedad defaultcellstyle y dentro de eso te sale otra propiedad llamad aformat
__________________
http://www.luisariashidalgo.com
  #3 (permalink)  
Antiguo 09/02/2007, 22:23
Avatar de JonhyReyes  
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 9 meses
Puntos: 1
De acuerdo Re: Formatear Datos de una Columna del Grid

Hay una coleccio llamada DataGridStyles y pues te pongo un ejemplo de como lo halle en internet:

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data

Public Class Form1
Inherits System.Windows.Forms.Form

' ...
' código generedo por el diseñador de windows form
' ...

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles MyBase.Load

'establecemos la referencia cultural del subproceso actual Español-Perú.
System.Threading.Thread.CurrentThread.CurrentCultu re = _
New System.Globalization.CultureInfo("es-PE")

Dim TableName As New String("MyTable")

Dim ObjEstiloTabla As New DataGridTableStyle
With ObjEstiloTabla
.MappingName = TableName
.AlternatingBackColor = Color.Coral
.BackColor = Color.Orange
.ForeColor = Color.White
.HeaderForeColor = Color.Blue
.LinkColor = SystemColors.Control
.AllowSorting = False
.HeaderFont = New System.Drawing.Font("Verdana", 8.25F, _
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, _
CType(1, System.Byte))
End With

Me.DataGrid1.TableStyles.Add(ObjEstiloTabla)
Me.DataGrid1.DataSource = GetMyTable(TableName)

Dim ObjEstiloColumna As DataGridTextBoxColumn

'formateamos la columna 0 ó "Integer" para datos enteros
ObjEstiloColumna = DataGrid1.TableStyles(0).GridColumnStyles(0)
If Not (ObjEstiloColumna Is Nothing) Then
ObjEstiloColumna.Format = "n1"
End If

'formateamos la columna 1 ó "Double" para datos de tipo double
ObjEstiloColumna = DataGrid1.TableStyles(0).GridColumnStyles(1) '
If Not (ObjEstiloColumna Is Nothing) Then
ObjEstiloColumna.Format = "f3"
End If

'formateamos los datos de la columna anterior como moneda nacional
'(en este caso, usaremos la moneda nacional peruana)
ObjEstiloColumna = DataGrid1.TableStyles(0).GridColumnStyles(2) '
If Not (ObjEstiloColumna Is Nothing) Then
ObjEstiloColumna.Format = "c2"
End If

'formateamos los datos de la columna 3 ó "Date" como Date
ObjEstiloColumna = DataGrid1.TableStyles(0).GridColumnStyles(3) '
If Not (ObjEstiloColumna Is Nothing) Then
ObjEstiloColumna.Format = "d"
ObjEstiloColumna.Width = 100
End If


End Sub


Private Function GetMyTable(ByVal TableName As String) As DataTable

Dim dt As New DataTable(TableName)
Dim RowsCount As Integer = 10

dt.Columns.Add(New DataColumn("Integer", GetType(Integer)))
dt.Columns.Add(New DataColumn("Double", GetType(Double)))
dt.Columns.Add(New DataColumn("s/. Double", GetType(Double)))
dt.Columns.Add(New DataColumn("Date", GetType(DateTime)))

Dim r As New Random 'objeto que generará un número aleatorio
Dim i As Integer

While i < RowsCount
Dim d As Double = 1000 * r.NextDouble()
Dim dr As DataRow = dt.NewRow()
dr(0) = Fix(d)
dr(1) = d
dr(2) = d
dr(3) = DateTime.Now.Date.AddMonths(CType(r.NextDouble * 21, Double))
dt.Rows.Add(dr)
i += 1
End While

Return dt
End Function

End Class

Es muy sencillo espero poder ayudar

saludos
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 13:14.