点击DataGrid的列标头在DataGrid最后一行显示该列的和
来源:互联网 发布:mfc创建access数据库 编辑:程序博客网 时间:2024/05/22 10:46
单击DATAGRID 的某一列时,在DATAGRID的最后增加一行,把整列的和显示在增加的这一行里。
如果想简单的方法的话请参见:DataColumn.Expression 属性 [C#]:获取或设置表达式,用于筛选行、计算列中的值或创建聚合列。
笨方法如下:
bool Sumed=false;//指示是否在最后一行显示了该列的和
private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
DataGrid.HitTestInfo hit=this.dataGrid1.HitTest(e.X,e.Y);
if(hit.Column!=-1)
{
try
{
this.dataGrid1.GetCellBounds(hit.Row,hit.Column);//取该单元格的Rectangle,如果出错说明单击了列标头
}
catch(System.IndexOutOfRangeException oir)
{//单击了列标头之后,功能代码->求和,添加到最后一列
int Sum=0;//某列总和
int iRow;
DataTable myTable;
myTable = (DataTable) ((DataSet)this.dataGrid1.DataSource).Tables[0];
if(Sumed)//如果datagrid已经添加了该列的和则在下次计算时应移除
{
DataRow drSum=myTable.Rows[myTable.Rows.Count-1];
drSum.Delete();
}
for(iRow = 0;iRow < myTable.Rows.Count ;iRow++)
{
Sum+=System.Convert.ToInt32(this.dataGrid1[iRow,hit.Column].ToString());//计算该列总和
}
//以下为添加到该列的最后一行代码
System.Data.DataRow dr=myTable.NewRow();
try
{
for(int k=0;k<myTable.Columns.Count;k++)
{
if(k==hit.Column)
{
dr[k]=Sum.ToString();//该列的和添加到列尾
}
else//其他列
{
//MessageBox.Show();
switch(dr[k].GetType().ToString())
{
case "System.Int32":
dr[k]=0;
break;
case "System.String":
dr[k]="总和";
break;
}
}
}
}
catch(System.FormatException fe)
{
MessageBox.Show(fe.Message+"/r/n"+fe.Source);
}
myTable.Rows.Add(dr);
Sumed=true;
}
}
}
- 点击DataGrid的列标头在DataGrid最后一行显示该列的和
- 点击DataGrid的列标头在DataGrid最后一行显示该列的和
- 在DataGrid的每一行中用图片的形式显示Edit和Delete的功能
- 在datagrid控件中显示多列的方法
- 如何在 dataGrid 上的第一列加上 CheckBox,当选中某行的 CheckBox 后,那一行的 datagrid 变为绿色。
- 在DataGrid中,使鼠标到达的行和列显示不同的颜色
- 在DataGrid中,使鼠标到达的行和列显示不同的颜色 (转载)
- 在DataGrid中,使鼠标到达的行和列显示不同的颜色
- 在DataGrid中,使鼠标到达的行和列显示不同的颜色
- FLEX实践:动态显示DataGrid的列和内容
- easyui datagrid 动态控制列的显示和隐藏
- 对DataGrid显示列的改进
- 动态显示/隐藏 DataGrid 的列。
- 动态显示/隐藏 DataGrid 的列
- Flex 动态调整DataGrid列的显示
- Flex 动态调整DataGrid列的显示
- Flex 动态调整DataGrid列的显示
- easyUI自定义datagrid的列显示
- 海量数据库的查询优化及分页算法方案
- 《通用电气六西格玛实施手册》
- 昨日关注:Hello,Avalon!
- XML卷之实战锦囊(3): 动态分页
- 利用反射机制得到一个类的方法,变量,以及构造函数
- 点击DataGrid的列标头在DataGrid最后一行显示该列的和
- 最近很难平静
- 如何在运行时确定对象类型(RTTI)
- Access 2000 数据库 80 万记录通用快速分页类[转帖]
- 在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介 [摘]
- 接触VSS
- 使用HttpContext中的User属性来实现用户身份验证之用户验证票篇[转载]
- 使用HttpContext的User属性来实现用户验证[转载]
- 页面计数器改进版,刷新页面无效