2016-10-01 11 views
0

enter image description hereダイナミックなグリッドビューを作成するには?

グリッドビューをこのように見せたいと思います。

これは私の議題表である:私は上記のPICのように見ることができるグリッドビュー/テーブルを作成するにはどうすればよい enter image description here

。 私は過去の単純なグリッドビューを使ってデータソースにバインドしましたが、これ以上です。

答えて

0

GridSpanおよびColSpanは、GridViewでプログラムで使用できます。 GridViewのOnRowDataBoundイベントを使用する必要があります。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     //chech if the row is the header 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      //span 3 columns, starting with the first one (0) 
      e.Row.Cells[0].ColumnSpan = 3; 

      //remove the other 2 column cells 
      e.Row.Cells.RemoveAt(2); 
      e.Row.Cells.RemoveAt(1); 
     } 
     //check if the row is a datarow 
     else if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      //the last rownumber of the rows to be spanned, can only count backwards because next row does not exist yet. 
      if (e.Row.RowIndex == 8) 
      { 
       //amount of rows to be spanned 
       int rowSpanCount = 4; 

       //find the first cell counting backwards (8 - rowSpanCount) 
       GridViewRow firstRow = GridView1.Rows[e.Row.RowIndex - rowSpanCount]; 
       firstRow.Cells[1].RowSpan = rowSpanCount; 

       //hide the other cells that are part of the rowspan 
       for (int i = 1; i < rowSpanCount; i++) 
       { 
        GridViewRow nextRow = GridView1.Rows[e.Row.RowIndex - i]; 
        nextRow.Cells[1].Visible = false; 
       } 
      } 
     } 
    } 

私のスニペットでは、HeaderRowは3つの列すべてにまたがり、セル4は列1が4行にまたがることになります。

関連する問題