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

2009年的第一个帖子,都进来拿红包了:C#清空DataGrid整列数据数据为0,但保留表结构的问题.....
可能题目描述的不太清楚:
比如一个DataGrid,要实现的效果就是:根据一个文本框输入的数字N把DataGrid的N列数据清0,如果N>0就从左清,如果N<0就从右边清,遇到当次清空的列与上一次清空的列有重复列的时候就要恢复重复列的本来数据(就是数据库中该重复列的数据),而不是将其清0。
问题描述不能太理解的再问我。
要实现的大致效果就是这样了,希望大家多给点儿意见,谢谢了先!!


------解决方案--------------------
好复杂
------解决方案--------------------
帮顶!
------解决方案--------------------
操作数据源不就可以了 
如果考虑恢复就 定义两个datatable
------解决方案--------------------
数据绑定事件里可以判断n,并清0
------解决方案--------------------
学习谢谢哦
------解决方案--------------------
引用楼主 sally__wang 的帖子:
可能题目描述的不太清楚: 
比如一个DataGrid,要实现的效果就是:根据一个文本框输入的数字N把DataGrid的N列数据清0,如果N>0就从左清,如果N <0就从右边清,遇到当次清空的列与上一次清空的列有重复列的时候就要恢复重复列的本来数据(就是数据库中该重复列的数据),而不是将其清0。 
问题描述不能太理解的再问我。 
要实现的大致效果就是这样了,希望大家多给点儿意见,谢谢了先!! 

------解决方案--------------------
没碰到过类似的问题,所谓左清和右清是指DataGrid控件里面的文本数据吗?
------解决方案--------------------
赞成3楼的朋友,对数据源进行操作,然后再进行绑定!
------解决方案--------------------
清空?

只是页表清空还是可以清空数据源啊..

如果数据源可以的话,那就清空数据源后再绑定
------解决方案--------------------
1、根据count = MyGrid.Columns.Count求出总的列数
2、如果N>0,N所对应列的值:MyGrid.DataKeys[MyGrid.SelectedIndex][count-N].tostring()
N<0,N所对应列的值:MyGrid.DataKeys[MyGrid.SelectedIndex][count+N].tostring()
3、清0后更新数据源

这样做应该可以的,你试试吧
------解决方案--------------------
取数据的时候就处理(清零),绑定什么的都一样不用变
------解决方案--------------------
是控件显示数据的话
控制列中的控件的visible 都给一个值 1显示-1不显示 初始都是1 不管左边右边 该列选中了这个值就*-1 
是直接显示的话 那就用数据源吧
至于从左边开始还是右边开始自己写这样的逻辑总会吧
------解决方案--------------------
up
------解决方案--------------------
JF
------解决方案--------------------
不太清楚。不过想既然是负数就可以tostring然后第一个是-号
------解决方案--------------------
感觉楼主想实现 数字动画清零
------解决方案--------------------
不会,顶一个
------解决方案--------------------
这个做起来麻烦,但是不难。
不要动数据源的数据。
将要清空的列的列名和数据记录下来,后清空。对应每个列做一个标志(建议使用Dictionry<String,bool>,如果是true则为第一次清空,清空后将其值设为false,如果为false,则将清空时保存的值恢复出来。
------解决方案--------------------
我也不会,帮顶
------解决方案--------------------
探讨
操作数据源不就可以了
如果考虑恢复就 定义两个datatable

------解决方案--------------------
感觉用两个table可以实现,不过这个感觉好复杂呀.
------解决方案--------------------
顶起来
------解决方案--------------------
我给你下思路 代码部分你自己来下,你在清空的时候首先读取最左侧或最右侧列的数据 然后保存到一个数组中,然后清空变成0,然后再来读取下一列,然后读取,然后保存到数组中,然后再与前1列的数组对比,如果是对的话用第1次保存的数组更新现在检索的前1列数据,这样即可 ,至于代码部分 楼主可以自己写下,代码部分不会太少,但是思路是这个样子,你看下具体情况