GridView 多次合计

3 篇文章 0 订阅

 今天有需求要用到多次合计,根据网上的稍微改了一下,我想应该有更好的可惜没搜到,如果大家看到有更好的可以给我路径,我也好学习一下,谢谢

现在正式开始看看,其实显示的大致效果如下:

前台其实很简单

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>    
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </div>
    </form>
</body>
</html>


后台只是绑定的时候做处理

            int iOrderNum = 0;//订单每次数量   
            int OrderTotalNum = 0;//订单总数量
            try
            {
                DataRow dataCurRow = null;//当前行   
                DataRow dataNewRow = null;//新增行   
                DataRow dataNextRow = null;//下一行   
                int rowCount = dt.Rows.Count;
                for (int i = 0; i < rowCount; i++)
                {
                    dataCurRow = dt.Rows[i];
                    if ((i + 1) <(rowCount+1 ))//如果是最后一行就不用比较了
                    {
                        if ((i + 1) == rowCount)
                        {                           
                            dataNewRow = dt.Rows[i];
                            iOrderNum += int.Parse(dt.Rows[i]["OrderNo"].ToString());
                            OrderTotalNum += int.Parse(dt.Rows[i]["OrderNo"].ToString());
                            dataNewRow = dt.NewRow();
                            dataNewRow["GroupNum"] = dataCurRow["GroupNum"];
                            dataNewRow["AgentId"] = "班组小计";
                            dataNewRow["OrderNo"] = iOrderNum;
                            dt.Rows.InsertAt(dataNewRow, i + 1);
                        }
                        else
                        {
                            dataNextRow = dt.Rows[i + 1];
                            iOrderNum += int.Parse(dt.Rows[i]["OrderNo"].ToString());
                            OrderTotalNum += int.Parse(dt.Rows[i]["OrderNo"].ToString());
                        }
                      
                    }
                    if (!dataCurRow["GroupNum"].Equals(dataNextRow["GroupNum"]))
                    {
                        if (dataCurRow["AgentId"].ToString() != "班组小计")//判断如果是小计则不用重复添加
                        {
                            dataNewRow = dt.NewRow();
                            dataNewRow["GroupNum"] = dataCurRow["GroupNum"];
                            dataNewRow["AgentId"] = "班组小计";
                            dataNewRow["OrderNo"] = iOrderNum;
                            rowCount += 1;
                            dt.Rows.InsertAt(dataNewRow, i + 1);
                        }
                        else
                            OrderTotalNum = OrderTotalNum - int.Parse(dt.Rows[i]["OrderNo"].ToString());//减去班组小计里面的重复数据
                        iOrderNum = 0;
                    }
                }
                //插入最后一行合计   
                dataNewRow = dt.NewRow();               
                dataNewRow["AgentId"] = "班组总计";
                dataNewRow["OrderNo"] = OrderTotalNum;
                dt.Rows.InsertAt(dataNewRow, dt.Rows.Count);
                rowCount = dt.Rows.Count;
                this.GridView1.DataSource = dt;//绑定数据库   
                this.GridView1.DataBind();
            }

显示的效果如上图。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值