Wednesday, October 23, 2013

Merge cells with equal values in a GridView



Below is the code


public class GridDecorator
{
    public static void MergeRows(GridView gridView)
    {
        for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
        {
            GridViewRow row = gridView.Rows[rowIndex];
            GridViewRow previousRow = gridView.Rows[rowIndex + 1];

            for (int i = 0; i < row.Cells.Count; i++)
            {
                if (row.Cells[i].Text == previousRow.Cells[i].Text)
                {
                    row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 : 
                                           previousRow.Cells[i].RowSpan + 1;
                    previousRow.Cells[i].Visible = false;
                }
            }
        }
    }
}
 
 
And in the PreRender of Gridview 
 
GridDecorator.MergeRows(gridView);
 
 
Reference:  http://www.codeproject.com/Articles/34337/How-to-merge-cells-with-equal-values-in-a-GridView

No comments: