请教高手一问题,DataGrid中想对某一列求和(或平均值),然后结果能显示在这一列的下面,不知道如何实现?
我查属性,有一个Expression,但不知道如何用,高手们请指点一下。

解决方案 »

  1.   

    楼主这个思路可能不行,给你换钟思路:SQL例如有一张人员编制表,部门下有多个科室,每个科室有一定的人数,如下
    field1   field2   amount
    部门a    系统科    5
    部门a    科室2     3
    部门b    系统科    4
    .........
    select * from (
    select field1, field2,amount,field1 as tmp1,1 as tmp2 from table1
    union
    select field1,'小计',sum(amount),field1 , 2 as tmp2 from table1 group by field1
    ) as t order by t.tmp1,t.tmp2绑定,ok
      

  2.   

    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];                    }         }
      

  3.   

    是用表达式和数据绑定 
    详细请见
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemDataDataColumnClassExpressionTopic.htm