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

Formato de Columnas Generadas en Tiempo de Ejecución de DataGrid

Estas en el tema de Formato de Columnas Generadas en Tiempo de Ejecución de DataGrid en el foro de .NET en Foros del Web. Hola gente del foro. Alguien me puede ayudar con esto.... Como puedo dar formato a las columnas de un datagrid que son autogeneradas..???? Lo que ...
  #1 (permalink)  
Antiguo 04/03/2005, 08:51
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 Columnas Generadas en Tiempo de Ejecución de DataGrid

Hola gente del foro.

Alguien me puede ayudar con esto....

Como puedo dar formato a las columnas de un datagrid que son autogeneradas..????

Lo que quiero hacer es alinear a la derecha los valores numéricos.

Aclaro es un datagrid cuyas columnas se crean dinámicamente.


Gracias de Antemano...
  #2 (permalink)  
Antiguo 04/03/2005, 17:31
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Utiliza CSS, puedes definir una clase CSS para cada fila del datagrid, a través de ItemStyle.CssClass, AlternatingItemStyle.CssClass, también puedes definir para los otros elementos del DataGrid.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 05/03/2005, 09:07
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Hola! sabs tengo el mismo problema que phinojosa y la verdad no entiendo muy bien como debo aplicar lo que me dices Segun entiendo debo agregar un .css a mi proyecto pero como lo implemento? o como haria en el css para que este le de el formato a las filas del grid segun el tipo de datos? Gracias de antemano!
  #4 (permalink)  
Antiguo 05/03/2005, 17:27
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Con CSS no se puede dar el formato a una columna específica, me refería básicamente a dar formato a toda una fila del DataGrid. Ahora yendo al problema en sí, puedes definir la alineación de tus datos al momento que estas haciendo el binding, te mando un ejemplo de como hacerlo, esa porción de código lo pones dentro del evento ItemDataBound de tu DataGrid.
Código:
Private Sub dgDatos_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgDatos.ItemDataBound
        For Each cel As TableCell In e.Item.Cells
            If IsNumeric(cel.Text) Then
                cel.Attributes.Add("style", "text-align: right")
            End If
        Next
End Sub
El código anterior sólo va a servir para columnas simples (columnas autogeneradas), para los otros tipos de columnas (BoundColumn, TemplateColumn, etc) necesitan unos pequeños cambios.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 07/03/2005, 07:46
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 xknown
Con CSS no se puede dar el formato a una columna específica, me refería básicamente a dar formato a toda una fila del DataGrid. Ahora yendo al problema en sí, puedes definir la alineación de tus datos al momento que estas haciendo el binding, te mando un ejemplo de como hacerlo, esa porción de código lo pones dentro del evento ItemDataBound de tu DataGrid.
Código:
Private Sub dgDatos_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgDatos.ItemDataBound
        For Each cel As TableCell In e.Item.Cells
            If IsNumeric(cel.Text) Then
                cel.Attributes.Add("style", "text-align: right")
            End If
        Next
End Sub
El código anterior sólo va a servir para columnas simples (columnas autogeneradas), para los otros tipos de columnas (BoundColumn, TemplateColumn, etc) necesitan unos pequeños cambios.

Saludos
Te cuento que ya lo probé y no funciona.
Yo programo en C# y puse en el evento ItemDataBound lo siguiente...

e.Item.Cells[5].Attributes.Add("style","text-align:rigth");
  #6 (permalink)  
Antiguo 07/03/2005, 18:25
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Aquí tienes el código en C#:
Código:
private void dgDatos_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
	double x;
	foreach(TableCell cel in e.Item.Cells){
            if (double.TryParse(cel.Text,NumberStyles.Number,null,out x))
                cel.Attributes.Add("style", "text-align: right");
	}
}
Como verás el código cambia un poco para determinar si es número (puedes crear una función personalizada, si tu preocupación es el rendimiento), esto es porque no existe una función IsNumeric como en vb.net.

Saludos
PD. Para una próxima ocasión especifíca el lenguaje en el que trabajas.
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 15/06/2009, 19:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Respuesta: Formato de Columnas Generadas en Tiempo de Ejecución de DataGrid

Hola XKnow.

Una pregunta, como se haria para que las columnas de tipo numerica y que tengan datos con decimales, me los muestra con (.) "PUNTO" en vez de (,)"COMA".

De inicio pense que era la configuracion regional de mi PC, pero no.
Trate Utilizando el FormatNumber([valor],2) pero tampoco funciona.

te agradeceria mucho tu ayuda..
Gracias
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 14:30.