2011-08-04 18 views
12

He agregado filas en gridview. Hay 20 columnas en gridview. ¿Cómo puedo hacer una función tipo colspan en gridview que podría mostrarme 2-3 filas en 2-3 columnas y permanecer como un colspan?colspan gridview rows

Básicamente deseo implementar colspan en gridview en las filas de la vista de cuadrícula.

por lo tanto mi presente gv es como;

Col 1 Col 2 Col 3 Col 4 ...... Col 20

Celda1 Cell2 CELL3 Cell 4 ...... Cell 20 (para las filas # 1)

Deseo tener algo como

Col Col 1 2 3 Col Col Col 4 ...... 20

Cell1  Cell2 ...... Cell 20 (For Rows # 1) 

Avísame para cualquier consulta.

Gracias

Respuesta

23

que necesita para manejar el evento OnRowCreated del GridView como sigue:

protected void grid_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.Header) 
    { 
     e.Row.Cells[2].ColumnSpan = 2; 
     //now make up for the colspan from cell2 
     e.Row.Cells.RemoveAt(4); 
    } 
} 

su margen de beneficio debe ser algo como esto:

<asp:GridView runat="server" ID="grid" OnRowCreated="grid_RowCreated" > 

En el ejemplo anterior, me llenó la grilla con esto:

DataTable dt = new DataTable(); 
     for (int i = 0; i < 5; i++) 
     { 
      dt.Columns.Add("Col " + i); 
     } 
     for (int i = 0; i < 10; i++) 
     { 
      DataRow r = dt.NewRow(); 
      r.ItemArray=new object[]{"row "+i,"row "+i,"row "+i,"row "+i,"row "+i}; 
      dt.Rows.Add(r); 
     } 

     grid.DataSource = dt; 
     grid.DataBind(); 

Y produce esto: sample image

Me di cuenta de que quería tener las filas (no necesariamente la cabecera) para tener ciertas colspan, en cuyo caso se puede hacer:

protected void grid_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     e.Row.Cells[2].ColumnSpan = 2; 
     //now make up for the colspan from cell2 
     e.Row.Cells.RemoveAt(4); 
    } 
} 

Y producirá:

enter image description here

+0

lo que es el uso del segundo fragmento de código que se han publicado? Además, ¿dónde incluir lo mismo? –

+1

@ Poder X: El segundo fragmento de código es diferente del primero en que el primero comprueba si la fila que se está creando es un Encabezado y el segundo si la fila que se está creando es un DataRow (preste atención a las sentencias if; ellos son diferentes). – Icarus

+0

No estoy pidiendo los eventos creados por row. Estoy pidiendo los fragmentos de código que han incluido 2 bucles for (entre 2 eventos creados en la fila) –

Cuestiones relacionadas