如何实现.

解决方案 »

  1.   

    1,显示页脚
    2
    public decimal val1,val2,val3,val4,val5,val6,val7,val8;
    public decimal sum1,sum2,sum5,sum6,sum7,sum8;
    3.
    private void grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if((e.Item.ItemType==ListItemType.AlternatingItem)||(e.Item.ItemType==ListItemType.Item))
    {
    int KeShidm=(int)DataBinder.Eval(e.Item.DataItem, "KeShidm");
    e.Item.Cells[1].Text=PowerMis.BLL.PubConstant.GetKeshiName(KeShidm);object obj1=DataBinder.Eval(e.Item.DataItem, "HeDingLiCheng");
    object obj2=DataBinder.Eval(e.Item.DataItem, "ShiJiLiCheng");
    object obj5=DataBinder.Eval(e.Item.DataItem, "jieyuelicheng");
    object obj6=DataBinder.Eval(e.Item.DataItem, "chaochulicheng");
    object obj7=DataBinder.Eval(e.Item.DataItem, "yingbojingfei");
    object obj8=DataBinder.Eval(e.Item.DataItem, "shibojingfei");if((obj1!=System.DBNull.Value)&&(obj1!=null))
    {
    val1=(decimal)obj1;
    }
    if((obj2!=System.DBNull.Value)&&(obj2!=null))
    {
    val2=(decimal)obj2;
    }
    if((obj5!=System.DBNull.Value)&&(obj5!=null))
    {
    val5=(decimal)obj5;
    }
    if((obj6!=System.DBNull.Value)&&(obj6!=null))
    {
    val6=(decimal)obj6;
    }
    if((obj7!=System.DBNull.Value)&&(obj7!=null))
    {
    val7=(decimal)obj7;
    }
    if((obj8!=System.DBNull.Value)&&(obj8!=null))
    {
    val8=(decimal)obj8;
    } sum1+=val1;
    sum2+=val2;
    sum5+=val5;
    sum6+=val6;
    sum7+=val7;
    sum8+=val8; }
    if(e.Item.ItemType==ListItemType.Footer)
    {
    e.Item.Cells[2].Text=sum1.ToString();
    e.Item.Cells[3].Text=sum2.ToString();
    e.Item.Cells[6].Text=sum5.ToString();
    e.Item.Cells[7].Text=sum6.ToString();
    e.Item.Cells[8].Text=sum7.ToString();
    e.Item.Cells[9].Text=sum8.ToString();

    }
    }
      

  2.   

    http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q313154
      

  3.   

    在dataGrid的footer中绑定label 
    用datatable.compute计算,filter是条件,为空就没有条件
    int total1=(int)dt.Compute("Sum(column1)",filter)
      

  4.   

    當然可以了。在dataGrid的footer中绑定label 
    用datatable.compute计算,filter是条件,为空就没有条件
    int total1=(int)dt.Compute("Sum(column1)",filter)
      

  5.   

    protected System.Web.UI.WebControls.DataGrid DataGrid1;         /// <summary>         /// 数据来源         /// </summary>         DataSet CreateDataSource()          {              DataTable dt = new DataTable();              DataRow dr;            dt.Columns.Add(new DataColumn("名称", typeof(string)));              dt.Columns.Add(new DataColumn("Value1", typeof(Int32)));              dt.Columns.Add(new DataColumn("Value2", typeof(Int32)));              dt.Columns.Add(new DataColumn("Value3", typeof(Int32)));              dt.Columns.Add(new DataColumn("Value4", typeof(Int32)));              for (int i = 0; i < 10; i++)               {                   dr = dt.NewRow();                dr[0] = i.ToString()+"名称";                   dr[1] = i;                   dr[2] = i+1;                   dr[3] = i+2;                   dr[4] = i+3;                   dt.Rows.Add(dr);              }                DataSet MyData=new DataSet();              MyData.Tables.Add(dt);              return MyData;         }         private void Page_Load(object sender, System.EventArgs e)         {              // 在此处放置用户代码以初始化页面                            DataSet MyData=CreateDataSource();//            DataGrid1.DataSource= MyData;//            DataGrid1.DataBind();              DataTable MyTable=new DataTable();              DataColumn myColum;                 foreach( DataColumn  NowDataColumn in MyData.Tables[0].Columns)              {                   myColum=new  DataColumn();                   myColum.DataType=NowDataColumn.DataType;                   myColum.ColumnName=NowDataColumn.ColumnName;                   MyTable.Columns.Add(myColum);              }              myColum=new  DataColumn();              myColum.DataType=System.Type.GetType("System.Int32");              myColum.ColumnName="每行合计";              MyTable.Columns.Add(myColum);              DataRow  AcountRow;                  int DataColumns=MyData.Tables[0].Columns.Count;              foreach( DataRow  NowRow in  MyData.Tables[0].Rows)              {                   AcountRow=MyTable.NewRow();                   AcountRow.ItemArray=NowRow.ItemArray;                   //每行合计                   GetRowAccount(AcountRow,1,5,DataColumns);                   MyTable.Rows.Add(AcountRow);              }              //生成的合计              AcountRow=MyTable.NewRow();              AcountRow[0]="竖列合计";                  for(int count=1;count<MyTable.Columns.Count;count++)                   foreach (DataRow NowRow in  MyTable.Rows)                   {                       if(!AcountRow.IsNull(count))                       {                            if (!AcountRow.IsNull(count) )                                 AcountRow[count]= Convert.ToInt32(AcountRow[count])+Convert.ToInt32(NowRow[count]);                       }                       else   AcountRow[count]=NowRow[count];;              }              MyTable.Rows.Add(AcountRow);              DataGrid1.DataSource=MyTable;              DataGrid1.DataBind();          }         /// <summary>         /// 每行合计         /// </summary>         private  void  GetRowAccount(DataRow AcountRow,int begincol,int endcol,int accountcol)         {              for(int i=begincol;i<endcol;i++)              {                       if(!AcountRow.IsNull(accountcol))                    {                   if ( !AcountRow.IsNull(i) )                        AcountRow[accountcol]= Convert.ToInt32(AcountRow[accountcol])+Convert.ToInt32(AcountRow[i]);                              }                   else  AcountRow[accountcol]=AcountRow[i];                    }         }
      

  6.   

    楼主问的是每列之和,可不是每行之和,——————————————————————————————
    datagrid可以汇总本datagrid每列之和吗 
    ————————————————————————
    加一个计算列不就可以了吗???
      

  7.   

    实现方法很多! sql语句 可以实现!
    客户端也可以实现