datagrid中对某一列进行统计怎么做?

charles036 2005-08-29 09:30:01
datagrid中对某一列进行统计怎么做?
...全文
185 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
charles036 2005-08-30
  • 打赏
  • 举报
回复
我按照MikeXiang的做法,为什么 if (e.Item.ItemType == ListItemType.Footer)这个条件不符合,我datagrid绑定的是一个dataset的数据!
charles036 2005-08-29
  • 打赏
  • 举报
回复
序号 设备名称 型号规格 数量(台) 预计金额(元)
1 ××× ×××× 5 200
... ..... ........ .. .....
共××台

要这样一个形式,这个统计的列要加在最后,这个是用datagrid的模板列实现的吗?
jimu8130 2005-08-29
  • 打赏
  • 举报
回复
建议你还是sql操作如果数据量不大还可以象上面样的进行循环计算,但是同时注意如果数据为空的话,转换为数值型的 方法。如果数据量大的化在程序里面循环计算会很影响效率的,加重服务器负担,最好用sql语句的方法来作
lovelife_821106 2005-08-29
  • 打赏
  • 举报
回复
for(int i=0;i<ds.Tables["tbName"].Rows.Count;i++)
{
sum = sum + ds.Tables["tbName"].Rows[i]["columnName"];
}
lovelife_821106 2005-08-29
  • 打赏
  • 举报
回复
for(int i=0;i<ds.Tables["tbName"].Rows.Count;i++)
{
sum = sum + ds.Tables["tb1"].Rows[i]["columnName"];
}
mathsword 2005-08-29
  • 打赏
  • 举报
回复
用sql语句了,或是在绑定前操作datatable了
MikeXiang 2005-08-29
  • 打赏
  • 举报
回复
如果你只是需要将统计结果显示在页面上,不需要进行sql操作的话:
在ItemDataBound事件中写就行了,具体代码如下:
protected int total;
public void dg_tell_ItemDataBound(object sender,DataGridItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))
{
total+= Convert.ToInt32(e.Item.Cells[1].Text.ToString());
}
if (e.Item.ItemType == ListItemType.Footer)
{
e.Item.Cells[1].Text = total.ToString();
}
}
jimu8130 2005-08-29
  • 打赏
  • 举报
回复
你可以直接用sql语句来统计
downmoon 2005-08-29
  • 打赏
  • 举报
回复
http://blog.csdn.net/downmoon/archive/2005/08/09/449038.aspx
zhuxiaojun2002 2005-08-29
  • 打赏
  • 举报
回复
不好意思,应该是

dt1.Columns.Add("total",typeof(string));
foreach(DataRow drTmp in dt1.Rows)
{
drTmp["total"] = int.Parse(drTmp["count"],toString())*(......)
}

后面小计规则你自己写了
zhuxiaojun2002 2005-08-29
  • 打赏
  • 举报
回复
你的预计金额(元)是什么意思。是单价吗?是不是要在最后加一列,还是最下面啊

如果在最后的话,建议用datatable。你用datatable获得数据源,比如dt1:

dt1.Columns.Add("total",typeof(string));
foreach(DataRow drTmp in ds.Tables[0].Rows)
{
drTmp["total"] = int.Parse(drTmp["count"],toString())*(......)
}

这样你获得的dt1就有了你要的那一列,相当与小计。

如果你要在下面加

共××台

同意 MikeXiang(嚮泉)的
99414325ALe 2005-08-29
  • 打赏
  • 举报
回复
关注
GDNPC 2005-08-29
  • 打赏
  • 举报
回复
觉得操作datatable比较灵活,在datatable统计后生成新的一个字段,再用<itemTemplate>绑定显示
佟格湾 2005-08-29
  • 打赏
  • 举报
回复
同意 MikeXiang(嚮泉)

另外,我觉得用DataList或Repeater会更灵活一点。

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧