2012-11-01 19 views
6

Gridviewレイアウトに関連する問題を解決するためのサポートが必要です。私は、C#.Net言語を使用してItemtemplate列を持つCustome Gridviewを実装しようとしており、RowSpanプロパティを使用してビューを含める必要があります。第1列のGridviewでRowspanを使用する方法

As Below

私は私が使用したコードを確認してくださいコードの下に使用しようとしましたが、私のためHere

を動作しませんでした:

protected void GridView31_DataBound1(object sender, EventArgs e) 
{ 
    for (int rowIndex = grdView31.Rows.Count - 2; rowIndex >= 0; rowIndex--) 
    { 
     GridViewRow gvRow = grdView31.Rows[rowIndex]; 
     GridViewRow gvPreviousRow = grdView31.Rows[rowIndex + 1]; 
     for (int cellCount = 0; cellCount < gvRow.Cells.Count; cellCount++) 
     { 
      if (gvRow.Cells[cellCount].Text == gvPreviousRow.Cells[cellCount].Text) 
      { 
       if (gvPreviousRow.Cells[cellCount].RowSpan < 2) 
       { 
        gvRow.Cells[cellCount].RowSpan = 2; 
       } 
       else 
       { 
        gvRow.Cells[cellCount].RowSpan = 
         gvPreviousRow.Cells[cellCount].RowSpan + 1; 
       } 
       gvPreviousRow.Cells[cellCount].Visible = false; 
      } 
     } 
    } 

} 

をしかしgvRow.Cells[cellCount].Text == gvPreviousRow.Cells[cellCount].Textたびは空白です。

したがって、グリッドは奇妙な形をしています。ここで何が起こっているのか分かりません。

誰でも手助けできますか?

答えて

11

使用RowDataBoundイベント:

void GridView31_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     if (e.Row.RowIndex % 4 == 0) 
     { 
      e.Row.Cells[0].Attributes.Add("rowspan", "4"); 
     } 
     else 
     { 
      e.Row.Cells[0].Visible = false; 
     } 
    } 
} 
+0

@Yuiryこれははるかによく理解しやすいです。 – Pratik

1
protected void GridView31_DataBound1(object sender, EventArgs e) 
{ 
    int i = 1; 
    for (int rowIndex = grdView31.Rows.Count - 2; rowIndex >= 0; rowIndex--) 
    { 
     GridViewRow gvRow = grdView31.Rows[rowIndex]; 
     GridViewRow gvPreviousRow = grdView31.Rows[rowIndex + 1]; 

     if (i % 4 !=0) 
     { 
      if (gvPreviousRow.Cells[0].RowSpan < 2) 
      { 
       gvRow.Cells[0].RowSpan = 2; 
      } 
      else 
      { 
       gvRow.Cells[0].RowSpan = gvPreviousRow.Cells[0].RowSpan + 1; 
      } 
      gvPreviousRow.Cells[0].Visible = false; 
     } 
     i++; 
    } 

これは私のために働いた。試用&エラー:)

代わり
+1

1 ... http://marss.co.ua/MergingCellsInGridView.aspx – naveen

+0

@naveenはるかに良い私は上記の溶液をチェックします完璧な&はい私がやったよりもはるかに優れて:)これを共有するためのnaveenありがとう – Pratik

+0

おい、助けてうれしい... :)しかし、yuriysソリューションは、あなたの問題を解決するか? – naveen

0
'VB.NET Code 


Private Sub DG_Data_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles DG_Data.RowDataBound 
      Try 

       'fusion , rowspan , colspan , 
       If e.Row.RowType = DataControlRowType.DataRow Then 
        If e.Row.RowIndex Mod 4 = 0 Then 
         e.Row.Cells(0).Attributes.Add("rowspan", "4") 
        Else 
         e.Row.Cells(0).Visible = False 
        End If 
       End If 



      Catch ex As Exception 
       jq.msgErrorLog(ex) 
      End Try 
     End Sub 
関連する問題