高手请进!!!如何在dataGrid中列出的数据后再插入分组数据行。

hlj321 2003-10-15 10:19:44
取出数据后,我想动态选择几个列后进行分组,在具体位置中插入分组所得的数据行。
...全文
47 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
py3zhsh 2003-11-24
  • 打赏
  • 举报
回复
可行﹗
bh2001zhh 2003-10-23
  • 打赏
  • 举报
回复
up
haoliqi 2003-10-22
  • 打赏
  • 举报
回复
用DataView处理一下
hlj321 2003-10-22
  • 打赏
  • 举报
回复
up
wldjy2 2003-10-22
  • 打赏
  • 举报
回复
go out
hlj321 2003-10-22
  • 打赏
  • 举报
回复
up
hlj321 2003-10-20
  • 打赏
  • 举报
回复
我的如下想法是否可行:
对给定的SQL语句生成一个临时表,再对临时表1进行处理;
1. 临时表1中的数据放入临时表2,需要把分组列均改为字符类型
2. 处理分组数据所有列的分组,所有分组列均改为字符类型,最后分组列中的值为列值加“小计”,插入到临时表中,
3. 再把分组列最后的分组列去掉,再对其进行分组,现在的所有分组列均改为字符类型,现在分组列的最后一列的值为列值加“小计”,去掉分组列的值为“最大的字符串”;
4. 重复第2步,直到把所有分组列处理完
5. 显示时直接从临时表2中取数,需要把“最在的字符串”改为空串(“”),对所有分组列进行按升序排序列出。
changezhong 2003-10-15
  • 打赏
  • 举报
回复
在绑定之前进行处理,想选择需要的行用DataView的RowFilter属性
例:
public DataView getCommonRec()

{

try

{

DataView dv=new DataView();

dv=_dsAll.Tables[0].DefaultView;

dv.RowFilter="RAYSTATUS4UPK='110' and (RAYSTATUS<>'100' and RAYSTATUS<>'200')";

return dv;

}

catch(Exception err)

{

throw err;

}

}

对取得的数据源过滤
tohen 2003-10-15
  • 打赏
  • 举报
回复
dataGrid中列出的数据后,將datetable進行分組處理,
得到數據後綁定
2002pine 2003-10-15
  • 打赏
  • 举报
回复
你可以把得出来的datatable,进行处理,然后重新绑定。
Coder李海波 2003-10-15
  • 打赏
  • 举报
回复
假设dataGrid1的数据源为dt1,DataView dv1,dt1中的数据是排序好了的。
dataGrid1.DataSource = dv1;
1、建DataTable dt2,2列(需要分组的列数-1)
2、string c1="",c2=""
3、循环dt1,c1为a列,c2为a列+b列,
如果当前行的a列!=c1,存入dt2;a列+b列!=c2,存入dt2
得到dt2中就为
1: a null
2: a b
3: a c
4、需要插入的小计行数目就是dt1.Rows.Count+dt2.Rows.Count
5、循环dt1,插入c列小计的小计行
6、循环dt2,插入a列小计和b列小计的小计行
插入小计行的计算就是,例如计算a列="a",b列="b"的小计
dt1.Compute("Sum(D列)","a列=a and b列=b");
8、最后dv1.Sort = "a列,b列,c列";
思路就是这样的了,我就做了1列分组的,多列嫌麻烦:)
注意:
你插入的小计处于中间是排序后的结果,实际是在dt1的最后的;
插入的行太多(几百条好像没问题),速度有点慢。

hlj321 2003-10-15
  • 打赏
  • 举报
回复
能提供一个简单的思路吗?
liduke 2003-10-15
  • 打赏
  • 举报
回复
还是将数据放入datatable中单独处理,再绑定
hlj321 2003-10-15
  • 打赏
  • 举报
回复
放在最后和放在中间我想是一样的,但是用什么办法才能算出小计呢?
changezhong 2003-10-15
  • 打赏
  • 举报
回复
小计的行必须放在中间吗?放在最后的话可以用Rows.Add()方法
将你小计的内容放进去
hlj321 2003-10-15
  • 打赏
  • 举报
回复
是否必须一个格一个格的遍历才能解决?
hlj321 2003-10-15
  • 打赏
  • 举报
回复
假设dataGrid数据如下:
a例 b例 C例 D例
a b c 20
a b d 40
a c c 20

得到如下的dataGrid
a例 b例 C例 D例
a b c 20
a b C小计 20
a b d 40
a b d小计 40
a b小计 60
a c c 20
a c c小计 20 //可以没有此行
a c小计 20
a小计 80

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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