网格视图单元格合并和求和合并行

本文关键字:求和 并行 合并 视图 单元格 网格 | 更新日期: 2023-09-27 18:24:49

for (int rowIndex = GVDCNoConfirm.Rows.Count - 2; rowIndex >= 0; rowIndex--)
{
    GridViewRow currentRow = GVDCNoConfirm.Rows[rowIndex];
    GridViewRow previousRow = GVDCNoConfirm.Rows[rowIndex + 1];
    for (int i = 0; i < currentRow.Cells.Count; i++)
    {
        if (currentRow.Cells[i].Text == previousRow.Cells[i].Text)
        {
            if (previousRow.Cells[i].RowSpan < 2)
                currentRow.Cells[i].RowSpan = 2;
            else
                currentRow.Cells[i].RowSpan = previousRow.Cells[i].RowSpan + 1;
            previousRow.Cells[i].Visible = false;
        }
      if (row.Cells[6].Text == previousRow.Cells[6].Text)
                {
                    float currentvalue = 0;
                    currentvalue = Convert.ToSingle(row.Cells[5].Text);
                    float previousvalue = currentvalue + Convert.ToSingle(previousRow.Cells[5].Text);
                    row.Cells[5].Text = Convert.ToString(previousvalue);
                    previousRow.Cells[j].Visible = false;
                }
    }
}

我在 RowDataBound 中有这段代码用于合并网格视图行。它工作正常,但是

         sno    name    amount   dcno    
          1     xxx     5000     888
                        2500     888
                        1000     1001
          2     yyy     5250     1002
                        2000      555
                        1250      555

在这个网格中,我想求和 (5000+2500(=7500,即相同的 dcno 888,类似 (2000+1250(=3250,即相同的 dcno 555

所以我需要像

         sno    name   amount   dcno
         1     xxx     7500     888
                       1000     1001
         2     yyy     5250    1002
                       3250     555

试过这样,但没有用,请任何人帮助我。

网格视图单元格合并和求和合并行

您可以将数据源设置为分组数据源。例如:当前查询如下所示:

Items.Select(t => new {t.sno, t.name, t.amount, t.dcno})

新的将是:

Items.Select(t => new {t.sno, t.name, t.amount, t.dcno})
     .GroupBy(t => new {t.sno, t.name, t.dcno})
     .Select(t => new {t.Key.sno, t.Key.name, t.Key.dcno, amount = t.Sum(a => a.amount)}

希望这个帮助

您不能在数据绑定之前准备源日期吗?如果我理解一定是 dcno 提交的"分组依据",对吧?在这种情况下,您可以使用 LINQ 来准备数据。

分组依据 linq-to-sql-in-c-sharp