• Viernes 8 de Noviembre de 2024, 15:47

Autor Tema:  Datagrid Como Hace Header De Header?  (Leído 2882 veces)

meli_lacruda

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Datagrid Como Hace Header De Header?
« en: Viernes 30 de Noviembre de 2007, 19:45 »
0
Hola!

Doy la explicación igual mando un print screen de lo que estoy intentando hacer para q se entienda bien.

Tengo el siguiente datagrid (saque propiedades de estilo para que sea mas legible en este mensaje)

<asp:DataGrid id="dgGroupDetail">
   <ItemStyle Font-Size="7pt"></ItemStyle>
   <HeaderStyle Height="20" ></HeaderStyle>       
   <COLUMNS>

<ASP:BOUNDCOLUMN HeaderText="Country" dataField="country_mes" />     <ASP:BOUNDCOLUMN HeaderText="Customer" DataField="customer_mes" />
<ASP:BOUNDCOLUMN HeaderText="Country" DataField="country_anio" />
<ASP:BOUNDCOLUMN HeaderText="Customer" DataField="customer_anio" />

  </COLUMNS>
</DataGrid>

Éste Datagrid, entonces tiene 4 columas, donde en el header se muestran los Títulos o nombres de las columnas, o sea:

         Country         Customer        Country       Customer

El datagrid se llena con datos que varían todo el tiempo, por lo tanto la longitud de las columnas varía a la vez.  Yo quiero poner otro header que me separe lo mensual de lo anual:

|      Mensual             |      Anual               |
|Country    Customer| Country Customer|

                        --- datos----

EL PROBLEMA esta en que el datagrid solo tiene 1 header y yo necesito 2, por lo menos hasta ahí llega mi conocimiento..

Yo podría poner    |      Mensual             |      Anual               | en una tr y todo en una tabla pero cuando la longitud de los datos se extiende se me defasan los títulos y me queda desalineado

Espero que alguien me pueda responder!..
Muchas Gracias!!
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Javier Santamaria

  • Miembro MUY activo
  • ***
  • Mensajes: 142
    • Ver Perfil
Re: Datagrid Como Hace Header De Header?
« Respuesta #1 en: Martes 4 de Diciembre de 2007, 13:29 »
0
Hola, se me ocurren dos cosas.

1. Creo que cambiaria menos tu codigo:
Te haces las etiquetas de la primera cabecera a mano y las situas encima de la cabecera del datagrid para simular dos cabeceras.

2. Algo mas elaborado:
Te creas una table de asp a la que puedes dar valores fijos de columnas y utilizar la propiedad wrap para que el texto se divida en varias lineas.
En este caso darias un tamaño fijo a la tabla y la primera cabecerea tendria dos columnas y la segunda cuatro. Es decir, si el tamaño son 100 px, las columnas de la cabecera 1 serian de 50 px y las de la cabecera 2 de 25 px.

Saludos

memito

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Datagrid Como Hace Header De Header?
« Respuesta #2 en: Martes 8 de Abril de 2008, 18:46 »
0
Puedes incluir encabezados personalizados.... aqui te pongo una imagen de mi aplicacion donde no solo tengo 2, tengo 3 encabezados...

todo se hace en el ItemCreate del DataGrid

TableCell dgCellOtorgados = new TableCell();
--- cuantas columnas quieres que ocupe tu encabezado
dgCellOtorgados.ColumnSpan = 10;
dgCellOtorgados.HorizontalAlign = HorizontalAlign.Center;
dgCellOtorgados.CssClass = "SuperHeaders";
dgCellOtorgados.Height = alturaSuperHeader;

-- TExto que va a tener la columna de encabezado
dgCellOtorgados.Text = "Otorgado";

-- Agregas la el encabezado
dgItem.Cells.Add(dgCellOtorgados);

TableCell dgCellNaturales = new TableCell();
dgCellNaturales.ColumnSpan = 4;
dgCellNaturales.HorizontalAlign = HorizontalAlign.Center;
dgCellNaturales.CssClass = "SubHeaders";
dgCellNaturales.Height = alturaSubHeaders;
dgCellNaturales.Text = "Naturales";
dgItemSub.Cells.Add(dgCellNaturales);

TableCell dgCellAdicionales = new TableCell();
dgCellAdicionales.ColumnSpan = 4;
dgCellAdicionales.HorizontalAlign = HorizontalAlign.Center;
dgCellAdicionales.CssClass = "SubHeaders";
dgCellAdicionales.Height = alturaSubHeaders;
dgCellAdicionales.Text = "Adicionales";
dgItemSub.Cells.Add(dgCellAdicionales);
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.