我在DataGridView中设置了ColChecked列,ColumnType是DataGridViewCheckBoxColumn,
目前我在DataGridView刷新后,初始化赋值dgv.rows[i].cells[0].value=false,然后根据dgv.rows[i].cells[0].value判断当前行是否选择。
但是如果dgv根据某列排序后,gv.rows[i].cells[0].value又是未赋值状态了。
dgv.datasource=datatable,这个datatable中的列是通过SQL即时查询到的。
请大大们指点一下,怎么才能在dgv排序后保留gv.rows[i].cells[0].value的值,或者我的这个方法怎么实现,谢谢了

解决方案 »

  1.   

    DataGridViewCheckBoxCell 
    EditedFormattedValue 获取该单元格的当前格式化值,而不考虑该单元格是否处于编辑模式,也不论是否尚未提交此值。
      

  2.   

    最简单可行的方法便是,给执行Sql取回的DataTable,增加一布尔值的列,再绑定到DataGridView:DataColumn col = new DataColumn("选定",typeof(bool));
                dt.Columns.Add(col);
                dataGridView1.DataSource = dt;
      

  3.   

    谢谢了,结合
    DataColumn col = new DataColumn("选定",typeof(bool));
                dt.Columns.Add(col);
                dataGridView1.DataSource = dt;

    DataGridViewCheckBoxCell   
    EditedFormattedValue   获取该单元格的当前格式化值,而不考虑该单元格是否处于编辑模式,也不论是否尚未提交此值。实现了我的想法,谢谢