没有合计
最终效果
如果实现??
protected System.Web.UI.WebControls.DataGrid DataGrid1;
///
1<summary>
2
3/// 数据来源
4
5/// </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
1<mytable.columns.count;count++) (!acountrow.isnull(count)="" (!acountrow.isnull(count))="" (datarow="" )="" <summary="" acountrow[count]="NowRow[count];;" datagrid1.databind();="" datagrid1.datasource="MyTable;" else="" foreach="" if="" in="" mytable.rows)="" mytable.rows.add(acountrow);="" nowrow="" {="" }="">
2
3/// 每行合计
4
5///
6
7private void GetRowAccount(DataRow AcountRow, int begincol, int endcol, int accountcol)
8
9{
10
11for ( int i=begincol;i<endcol;i++)
12
13{
14
15if (!AcountRow.IsNull(accountcol))
16
17{
18
19if ( !AcountRow.IsNull(i) )
20
21AcountRow[accountcol]= Convert.ToInt32(AcountRow[accountcol])+Convert.ToInt32(AcountRow[i]);
22
23}
24
25else AcountRow[accountcol]=AcountRow[i];
26
27}
28
29}
30
31缺点: 把所有的数据都访问过 肯定效率不是很好
32
33还有其他的办法 如果有更好的方法 请告诉我 。</mytable.columns.count;count++)>