自定义求和方法
private static void CustomSummary(GridView view, params string[] fieldNames)//自定义求和
{
decimal totalMoney = 0.00m;
string Customer = "";
view.CustomSummaryCalculate += (s, e) =>
{
if (e.IsTotalSummary && fieldNames.Contains((e.Item as GridSummaryItem).FieldName))
{
GridSummaryItem item = e.Item as GridSummaryItem;
if (fieldNames.Contains(item.FieldName))
{
string currCustomer0 = Convert.ToString(view.GetRowCellValue(0, view.Columns["Customer"]));//获取第一行的值
string currCustomer = Convert.ToString(view.GetRowCellValue(e.RowHandle, view.Columns["Customer"]));
switch (e.SummaryProcess)
{
case CustomSummaryProcess.Start://开始计算
totalMoney = 0.00m;
break;
case CustomSummaryProcess.Calculate://计算中
if (currCustomer != Customer)
{
totalMoney += Convert.ToDecimal(e.FieldValue);
Customer = currCustomer;
}
else
{
if (Customer == currCustomer0)//如果筛选单个时
{
totalMoney = Convert.ToDecimal(e.FieldValue);
}
}
break;
case CustomSummaryProcess.Finalize://结束计算
e.TotalValue = totalMoney;
break;
}
}
}
};
}
设置列求和类型为 Custom
引用
CustomSummary(gridView1, "YingFu", "Money", "Shengyu");//自定义求和
效果: