对具有分页的网格视图列求和

本文关键字:视图 求和 网格 分页 | 更新日期: 2023-09-27 18:37:06

>我有一个包含 100 条记录的 GridView,网格的页面大小为 10。此外,我还需要对网格视图中的一列求和并将其显示在标签中。我在页面加载事件中使用以下代码对网格视图列求和,它按预期工作。

int sum = 0;
for (int i = 0; i < gvDetails.Rows.Count; ++i)
{
   sum += Int.Parse(gvDetails.Rows[i].Cells[4].Value.ToString());
}
lblTotal.Text = sum.ToString(); 

这段代码对整个值求和,我的意思是 100 条记录的总和。但是我只需要 10 条记录的总和,其中每页仅包含 10 条记录,当我进行分页并移动到每个页面时,它必须仅显示相应页面的总和。

简单起见,我只需要对我在网格中看到的列值求和,而不是对所有记录求和。

如何实现这一点?请建议我。

对具有分页的网格视图列求和

您可以使用 GridView_RowDataBound,对网格视图中的每个页面执行。

您可以使用

PageIndexPageSize 分别获取当前 gridview 页面索引和页面大小,并应用逻辑获取当前页面中的所需行集,并循环访问所需的行以获取总和。以下是获取当前页面中所需行数的一些代码片段。

int pageidx = gvDetails.PageIndex;
int pagesize = gvDetails.PageSize;
int startidx = pageidx * pagesize;
int endidx = startidx + pagesize;
int sum = 0;
for (int i = startidx; i < endidx; i++)
{
    sum += Int.Parse(gvDetails.Rows[i].Cells[4].Value.ToString());
}
lblTotal.Text = sum.ToString();