C#中DataGridView重排序后,对它单元格所作的样式(比如改变背景颜色)改变都消失了。请问下有方法解决?

这个问题我百度了很多,有提问者,但是都不了了之..
我的问题具体是这样:DataGridView绑定数据后,用户可以修改单元格的值,修改后会有特别颜色标注单元格,当提交修改后颜色恢复,可是如果这时单击DataGridView列头,数据重排序同时所做的颜色修改也没了,而由于用户体验的需要,我们不能禁止DataGridView的排序方式。

你可以在重新排序的时候先获取单元格的颜色值,然后在排序完毕后再给这些单元格赋上相应的颜色值。这里会有些复杂,因为你要判断每个单元格。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-28
你可以记下修改过的单元格的样式,以及哪条数据的哪个单元格做过了修改,当数据重排序后,在GridView1_RowDataBound()这个方法里进行一下判断,将做过修改的单元格的样式再赋回去,看看这样是不是可以。追问

我保存了所做的样式修改,当他重排序时再赋回去,不过现在遇到了新问题,就是:当用户点击了某一列列头进行升降排序,后面只要改变该列的值,DataGridView将即刻按照升降排序对改变值排序,让用户有点不知所措

追答

你看这样改一下行不,设置一个列为默认的排序列,比如ID,每次重排时都按这个列进行重排,这样应该能好一些吧

C#中DataGridView重排序后,对它单元格所作的样式(比如改变背景颜色...
你可以在重新排序的时候先获取单元格的颜色值,然后在排序完毕后再给这些单元格赋上相应的颜色值。这里会有些复杂,因为你要判断每个单元格。

C#中DataGridView重排序后,对它单元格所作的样式(比如改变背景颜色...
你需要在每次排序事件发生之后,调用单元格设置的方法.就可以了.也可直接用委托,把方法绑定到排序事件之后.

C#中点击DataGridView列头自动排序后,对单元格所作改变(比如某些行有...
1.在读取数据的时候,设定绑定到了单元格 2.在 CellFormatting(推荐) 事件里改写 如果是1,就需要排序后,重新调用格式设置函数,一一设置 如果是2,应该就不存在这个问题了,因为一般情况下,单元格格式都是随值的变化而变化,这种方式除了是微软推荐外,重点是:节省资源开销,而且灵活自如,速度也不错 ...

C# DataGridView 设置背景色被重置如何解决?
Row的DefaultStyle和Cell的Style都不能带到第二个单元格 我试了一种方法,有点麻烦,不过可以实现你的效果。把你修改单元格颜色的代码,抽成一个公共类的静态方法 public class Class1 { public static void SetColr(System.Windows.Forms.DataGridView gdv){ if(gdv.Rows.Count > 0 && gdv.Columns...

c# winform 如何取消datagridview的单元格选中的背景色的变化(即选中单...
在选中事件里加入一段代码:让选中的单元格的背景色为其旁边的单元格的背景色就OK 注意在选中事件里加

c# 如何改变datagridview里的字体颜色
1 <datagridview ForeColor="Red" \/> 2、后台方法 这里需要先对datagridview命名。把forecolor设置为想要的颜色即可,例子中设置为红色。 1 2 datagridview datagridview1=new datagridview(); dataGridView1.ForeColor = Color.Red; 本回答由电脑网络分类达人 系统推荐 举报| 答案纠错 | 评论 1 6 jiafeimao...

C# dataGridView CellValueChange事件里 单元格的值改变了后光标还没...
在保存按钮中,保存代码前,增加停止编辑的代码(调用datagridview的CommitEdit或者EndEdit)

...C#中控件dataGridView单元格后(限定一行的更改),怎样获得这行更改前...
datagridview是没有记住行的功能的,它的行功能只有显示和隐藏,如果你想要得到你以前修改前的值和后的值就要将datagridview和datatable绑定在一起,因为只有datatable才可以保存行的状态:新添加的行(added),已经修改得行(modified),要删除的行(deleted),没改变的行(unchanged),这些状态是在没...

C#中DataGridView网格怎样让鼠标经过某个单元格的时候改变这个单元格...
DataGridView中没有经过某一单元格的时候而引起的事件,你可以触发相应的单元格,而引起颜色的改变,或者改用table

c#datagridview如何实现一个单元格中有一个按钮和一个文本框,每一行的...
http:\/\/www.2cto.com\/kf\/201207\/144892.html 绝对是你想要的答案!这一节大家共同学习下自定义的datagridview, 这个datagridview的主要功能是可以使datagridview中的某些列包含按钮,单击按钮可以触发相应的事件。我们先来看下效果图吧!

相似回答