Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何合并gridview行_C#_Asp.net_Gridview_Merge - Fatal编程技术网

C# 如何合并gridview行

C# 如何合并gridview行,c#,asp.net,gridview,merge,C#,Asp.net,Gridview,Merge,我想合并表,但不知道如何合并。我已经试过很多次了,但仍然无法找到正确的解决方案。现在我的gridview是这样的: Data 1 | Data 1 | Data 1 | Data 1 Data 1 | Data 1 | Data 1 | Data 1 Data 2 | Data 2 | Data 2 | Data 2 Data 2 | Data 2 | Data 2 | Data 2 我希望gridview是这样的: Data 1 | D

我想合并表,但不知道如何合并。我已经试过很多次了,但仍然无法找到正确的解决方案。现在我的gridview是这样的:

Data 1  |  Data 1  |  Data 1  |  Data 1
Data 1  |  Data 1  |  Data 1  |  Data 1
Data 2  |  Data 2  |  Data 2  |  Data 2
Data 2  |  Data 2  |  Data 2  |  Data 2
我希望gridview是这样的:

Data 1   |   Data 1   |   Data 1  |   Data 1
         |   Data 1   |   Data 1  |
Data 2   |   Data 2   |   Data 2  |   Data 2
         |   Data 2   |   Data 2  |
  • 这对你有帮助
合并单元格的代码非常短:

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;
                }
            }
        }
    }
}

这是一个很好的例子,但是我之前已经试过了,结果与这个例子不一样。谢谢!我遇到了一个与@20151012类似的问题,这个问题也解决了,只是它只针对第一个单元格。因此,我取出for并将所有对I的引用替换为cell索引。
protected void gridView_PreRender(object sender, EventArgs e)
{
    GridDecorator.MergeRows(gridView);
}