GridView with merged cells

前端 未结 2 1067
谎友^
谎友^ 2020-12-01 11:22

I need to display data in grid view with merged rows for some columns. Please help me to prepare a grid view in below defined format:

相关标签:
2条回答
  • 2020-12-01 11:38

    Simplest way to merge Row-cells of first column is as below. Please note that For Loop is always to be iterated in reverse.

    protected void GridView1_DataBound(object sender, EventArgs e)
        {
            int RowSpan = 2;
            for (int i = GridView1.Rows.Count-2; i >=0 ;i-- )
            {
                GridViewRow currRow = GridView1.Rows[i];
                GridViewRow prevRow = GridView1.Rows[i+1];
                if (currRow.Cells[0].Text == prevRow.Cells[0].Text)
                {
                    currRow.Cells[0].RowSpan = RowSpan;
                    prevRow.Cells[0].Visible = false;
                    RowSpan += 1;
                }
                else
                    RowSpan = 2;
            }
        }
    

    If you want to merge row-cells of all columns similarly, you can use another "forloop" within outer forloop written above

    0 讨论(0)
  • 2020-12-01 11:46

    You will have to use RowSpan.

    Refer following code for it:

    protected void GridView1_DataBound1(object sender, EventArgs e)
    {
      for (int rowIndex = GridView1.Rows.Count - 2;
                                         rowIndex >= 0; rowIndex--)
      {
        GridViewRow gvRow = GridView1.Rows[rowIndex];
        GridViewRow gvPreviousRow = GridView1.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;
        }
       }
    }
    

    Referance:

    https://sites.google.com/site/learning6329/asp-net/gridview-merge-cells

    Pictorial Example As In Question:

    http://marss.co.ua/MergingCellsInGridView.aspx

    0 讨论(0)
提交回复
热议问题