项目场景:
gridcontrol比较普遍的添加数据源方式
gridControl1.DataSource = ds.Tables[0].DefaultView;
但是我们经常需要改变某一列的类型为checkbox或者按钮类型,这时候我们就要用到另外一种添加数据源的方式
使用方法:
DataSet作为数据源
// 需要定义两个dev的参数
DevExpress.XtraGrid.Columns.GridColumn newcol;
DevExpress.XtraGrid.GridGroupSummaryItem newsum;
if (ds != null && ds.Tables[0].Rows.Count > 0)//数据集不为空
{
this.gridControl1.DataSource = ds.Tables[0].DefaultView;//数据源确认
this.gridView1.Columns.Clear();//清空原有列名、值、属性等
int i = 0;
foreach (System.Data.DataColumn col in ds.Tables[0].Columns)//遍历数据源
{
newcol = this.gridView1.Columns.Add();
newcol.Name = col.ColumnName;
newcol.FieldName = col.ColumnName;
newcol.Width = Convert.ToInt32(ds.Tables[1].Rows[0][i].ToString());
newcol.Caption = col.ColumnName;
newcol.Visible = true;//该列是否可见
newcol.OptionsColumn.ReadOnly = true;//该列是否只读
if (newcol.Name == 列名)//ds里面的列名
{
newcol.Visible = false;//该列是否可见
newcol.OptionsColumn.ReadOnly = flase;//该列是否只读
newcol.ColumnEdit = ItemBottonMx;//列的属性
}
if (newcol.ColumnType.ToString() == "System.Decimal")//ds中该列是数据类型
{
//没有分组之前的汇总,分组即使筛选
newcol.SummaryItem.FieldName = newcol.FieldName;
newcol.SummaryItem.DisplayFormat = "{0:0.########}";
//在gridcontrol的页脚显示计算后的数据
newcol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;//SUM求和Average
newcol.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
newcol.DisplayFormat.FormatString = "{0:0.########}";
//分组后显示在分组头的汇总
newsum = this.gridView1.GroupSummary.Add();
newsum.FieldName = newcol.FieldName;
newsum.DisplayFormat = "[" + newcol.Caption + ":{0:0.########}]";
newsum.SummaryType = DevExpress.Data.SummaryItemType.Sum;
}
}
}
i = i + 1;
}
页脚显示数据求和