Sum Gridview列与分页

时间:2015-01-09 15:36:22

标签: c# asp.net .net gridview

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

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个记录,当我进行分页并移动到每个页面时,它只需要显示相应页面的总和。

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用GridView_RowDataBound,为gridview中的每个页面执行。

答案 1 :(得分:0)

您可以使用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();