datagridview 数据源为一个datatable, 另外自已手工添加了一个自定义的列ColA,ColA没有绑定数据库的列,用代码设置该列每个单元格的值。 
现在的问题是,当点击列标题时,这个ColA的值被清空了,有什么方法可以让它不清空吗? 

解决方案 »

  1.   

    我现在的做法是在sorted事件中加代码重新计算,但这样不太好,datatable的数据根本没变化,又重新计算一次没必要,而且计算过程比较复杂,数据多的时候会卡。
      

  2.   

    我给你一个建议:尽量将什么计算的,派生列的操作放到数据库存储过程中实现,然后直接绑定到datagridview。
      

  3.   

    有没高手能解释一下,为什么排序后,自定义的列会清空,排序的时候datagrid干了什么事情了,非得把原来的值清空, 难度排序也要从数据库中重新取数据?
      

  4.   

    把自定义列不要直接加到GRID里面,加到数据源里面作为数据源的一个COLUMN,在GRID里面新增一列,显示自定义列
      

  5.   

    Datagridview.datasource = datatable绑定后的排序可能自动加载了。
      

  6.   

    你可以在dataGridView1_ColumnHeaderMouseClick这个事件再把自定义列绑定上(ps:自定义列些个公用方法获取)
      

  7.   

    6楼的方法可以哦,给datatable加一个假的列,再赋值给这个列,datagrid应该就不会清空了,我去试试看