我有一个包含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个记录,当我进行分页并移动到每个页面时,它只需要显示相应页面的总和。
为了简单起见,我只需要对网格中看到的列值求和,而不是对所有记录求和。
如何实现这一目标?请建议我。
答案 0 :(得分:1)
您可以使用GridView_RowDataBound,为gridview中的每个页面执行。
答案 1 :(得分:0)
您可以使用PageIndex
和PageSize
分别获取当前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();