日期:2014-05-18  浏览次数:20911 次

汇总与明细在datagrid中显示
有表如下:
产品         型号         数量
Nokia       7610         2
Nokia       6110         3
Moto         A1200       5
Moto         V3i           6

想要在vs2005的datagrid中显示如下:
产品       型号         数量
Nokia       7610         2
Nokia       6110         3
小计                         5
Moto         A1200       5
Moto         V3i           6
小计                         11
合计                         16

不知如何处理,直接用sql语句可解决吗?




------解决方案--------------------
DataGrid控件估计是不能直接实现楼主想要的功能的。

如果一定要实现这样的数据显示话,我的思路如下,楼主可参考一下:
1,在数据库中建立视图,统计好相应数据
2,根据想要显示的数据,一边读取一边动态生成Table(3列,小计、合计第2列数据为空)
3,DataGrid数据源指定为上述Table
------解决方案--------------------
可以实现,先用带分组统计SQL,再在DataGrid绑定数据时的事件里判断一下就行了
------解决方案--------------------
写错了,是 RowDataBound,将结果放在Footer
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
string number;
if (e.Row.RowType == DataControlRowType.DataRow)
{
//处理数据行
}
else if(e.Row.RowType == DataControlRowType.Footer)
{
//如下处理页脚的示例
e.Row.Cells.Clear();
TableCell tc = new TableCell();
tc.Width = GridView1.Width;
tc.ColumnSpan = 2;
e.Row.Cells.Add(tc);
e.Row.Cells[0].Text = "本页共查询出 " + GridView1.Rows.Count.ToString() + "条记录 ";
}
}