datagrid可以汇总本datagrid每列之和吗 如何实现. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1,显示页脚2public 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(); }} http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q313154 在dataGrid的footer中绑定label 用datatable.compute计算,filter是条件,为空就没有条件int total1=(int)dt.Compute("Sum(column1)",filter) 當然可以了。在dataGrid的footer中绑定label 用datatable.compute计算,filter是条件,为空就没有条件int total1=(int)dt.Compute("Sum(column1)",filter) 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]; } } 楼主问的是每列之和,可不是每行之和,——————————————————————————————datagrid可以汇总本datagrid每列之和吗 ————————————————————————加一个计算列不就可以了吗??? 实现方法很多! sql语句 可以实现!客户端也可以实现 AJAXToolkit ? 求能人帮翻译一段VBA代码 repeater 绑定数据问题? my97具体怎么用?? 上传文件时提示 文件拒绝被访问 在js中怎么删除table中的所有东西 菜鸟问题,显示网站的目录,高手进来看看,谢谢! asp.net下面怎么使用mysql?急呀 近日搞水晶报表烦心,妹妹却离我而去,妹妹暂搁一旁,干脆大家来个水晶报表高手大串讲,经典问题集于一文,岂不快哉!!!! 如何用ASP编程打开一个新的IE。 asp.net中DataNavigateUrlFormatString?id={0}&name={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();
}
}
用datatable.compute计算,filter是条件,为空就没有条件
int total1=(int)dt.Compute("Sum(column1)",filter)
用datatable.compute计算,filter是条件,为空就没有条件
int total1=(int)dt.Compute("Sum(column1)",filter)
datagrid可以汇总本datagrid每列之和吗
————————————————————————
加一个计算列不就可以了吗???
客户端也可以实现