c# datagridview 绑定时 改变单元格的值

首先从数据库查出一个 dataTable 与 datagridview 绑定
然后这个表里有一列是 sex :1 是,男,2是女。
查出来的数据显示的是1 和2,这样不行。

于是我在加载完成后循环整个dataTable更改掉sex列 ,把1改成男,2改成女
这样就改完了。

我的问题是:在加载完成后再循环dataTable更改单元格的值速度实在是太慢了,50W条数据更改和不更改速度很明显。请问,c#有没有一个事件,和asp.net一样有个行绑定事件,就是这个行刚绑定上就我就可以去修改单元格值,这样速度应该会快一点点??

或者您有更好的办法请教教我。

DataGridView.CellFormatting 事件

每绘制一个单元格,就会发生 CellFormatting 事件

用法:

private void Grid_CellFormatting( object sender, DataGridViewCellFormattingEventArgs e )
{
if ( e == null || e.Value == null || !(sender is DataGridView) )
return;

DataGridView view = (DataGridView)sender;
object originalValue = e.Value;

if(view.Columns[e.ColumnIndex].DataPropertyName == "sex")
e.Value = ((int)originalValue == 1) ? "男" : “女”;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-22
把那列改成TemplateField的,然后在源码界面找到那列的绑定语句Eval那个。
把这个值当成一个参数,传到代码页,在代码页写一个方法,用来对1和2进行转换
相似回答