在WebForm 下,如何用网格控件DataGrid输出以下结果,请各位高手指点,万分感激编号  商品名称  数量  单价  成本单价    金额     成本   利润
1     aaa       10     10      5        100      50     50
2     bbb       20     10      6        200      120    80  
合计:共3条记录  30                      300      170    130最后一条记录是合计,并且用不同的背景色显示, 如何可以做到,最好有代码?

解决方案 »

  1.   

    给一个DataGrid的自定义分页的代码。可以参照下面的“总共多少页”等等的代码:<asp:Label ID="Current" runat="server" Text=""></asp:Label>
                        <asp:Label ID="PageCount"
                            runat="server" Text=""></asp:Label>
                        <asp:Label ID="RecordCount" runat="server"
                                Text=""></asp:Label>
                        <asp:LinkButton ID="btnFist" runat="server" CommandArgument="Fist" OnClick="PageChange">首页</asp:LinkButton>
                        <asp:LinkButton ID="btnPrev" runat="server" CommandArgument="Prev" OnClick="PageChange">上一页</asp:LinkButton>
                        <asp:LinkButton ID="btnNext" runat="server" CommandArgument="Next" OnClick="PageChange">下一页</asp:LinkButton>
                        <asp:LinkButton ID="btnLast" runat="server" CommandArgument="Last" OnClick="PageChange">尾页</asp:LinkButton>
                        跳转<input id="txtNum" style="width: 24px" type="text" runat="server" />页
                        <asp:Button ID="btnGo" runat="server" Text="Go" OnClick="btnGo_Click" />asp.cs:
     public void PageChange(object sender, EventArgs e)//分页
        {
            string direction = ((LinkButton)sender).CommandArgument;
            switch (direction)
            {
                case "Fist":
                    GridView1.PageIndex = 0;
                    break;
                case "Prev":
                    GridView1.PageIndex =Math.Max(GridView1.PageIndex - 1, 0);
                    break;
                case "Next":
                    GridView1.PageIndex =Math.Min(GridView1.PageIndex + 1,GridView1.PageCount - 1);
                    break;
                case "Last":
                    GridView1.PageIndex = GridView1.PageCount - 1;
                    break;
                default:
                    break;
            }
            GetDataBind();
        }
    private void GetDataBind()//绑定
        {
            BLL bll=new BLL ();
            GridView1.DataSource = bll.GetBookTable().DefaultView;
            GridView1.DataBind();
            this.Current.Text = "第" + (GridView1.PageIndex + 1).ToString() + "页";
            this.PageCount.Text = "共" + GridView1.PageCount.ToString() + "页";
            this.RecordCount.Text = "总共" + bll.GetBookTable().Rows.Count.ToString() + "条记录";
            if (GridView1.PageIndex == 0)
            {
                btnFist.Visible = false;
                btnPrev.Visible = false;
            }
            else
            {
                btnFist.Visible = true;
                btnPrev.Visible = true;
            }
            if (GridView1.PageIndex == GridView1.PageCount - 1)
            {
                btnNext.Visible = false;
                btnLast.Visible = false;
            }
            else 
            {
                btnNext.Visible = true;
                btnLast.Visible = true;
            }    }
     protected void btnGo_Click(object sender, EventArgs e)//跳转
        {
            if (Int32.Parse(txtNum.Value.Trim()) <= GridView1.PageCount)
            {
                GridView1.PageIndex = (Convert.ToInt32(txtNum.Value.Trim()) - 1);
            }
            else
            {
                RegisterStartupScript("", "<script>alert('页码不能大于总页数')</script>");
            }
            GetDataBind();
        }
      

  2.   

    最好把利润写到sql里,这样就跟通常的做法一样了,简单多了
      

  3.   

    把利润写到sql里,但是我们上面要求统计行要求用不同的颜色显示,
      

  4.   

    可以在数据源的datatable手动增加一行合计,然后绑定