本帖最后由 xjcsghliu 于 2011-10-26 11:13:14 编辑

解决方案 »

  1.   

    直接在DataTable中加合计行,然后绑定到GridView
      

  2.   

    查询的时候就把合计查出来,或者在datatable里加一行合计
      

  3.   

    你的这个
    else if (e.Row.RowType == DataControlRowType.Footer)
    {
        e.Row.Cells[3].Text = "合计:";
        e.Row.Cells[4].Text = sum.ToString();
        e.Row.Cells[5].Text = sum1.ToString();
    }
    判断在
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        //上面的Footer添加的内容你放在了DataRow里,当然执行不到了。
    }你的那个RowDataBound的if...else 感觉太乱了,自己检查一下先。
      

  4.   

    以前帮别人写过类似的,你参考一下,原帖地址:http://topic.csdn.net/u/20110820/00/238cba9a-eb6a-495d-a01d-e1d64b98f738.html
      

  5.   


        protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if ((e.Row.Cells[1].Text).Length > 16)
                {
                    e.Row.Cells[1].Text = (e.Row.Cells[1].Text).Substring(0, 16) + "…";
                }            if ((e.Row.Cells[2].Text).Length > 16)
                {
                    e.Row.Cells[2].Text = (e.Row.Cells[2].Text).Substring(0, 16) + "…";
                }
                string id = e.Row.Cells[11].Text.ToString();
                stockClass sc = new stockClass();
                float not4 = sc.not(id);
                if (not4 == 0)
                {
                    e.Row.Cells[11].Text = "<font color=red>0</font>";
                }
                else
                {
                    e.Row.Cells[11].Text = String.Format("{0:0.00}", not4);
                }            string id2 = e.Row.Cells[10].Text.ToString();
                stockClass sc2 = new stockClass();
                float not5 = sc.not1(id);
                if (not5 == 0)
                {
                    e.Row.Cells[10].Text = "<font color=red>0</font>";
                }
                else
                {
                    e.Row.Cells[10].Text = String.Format("{0:0.00}", not5);
                }
            }
            else
            {
                   if (e.Row.RowIndex >= 0)
                   {
                         sum += Convert.ToDouble(e.Row.Cells[4].Text);
                        sum1 += Convert.ToDouble(e.Row.Cells[5].Text);
                   }
                   else if (e.Row.RowType == DataControlRowType.Footer)
                   {
                       e.Row.Cells[3].Text = "合计:";
                       e.Row.Cells[4].Text = sum.ToString();
                       e.Row.Cells[5].Text = sum1.ToString();
                    }
               }
        }