近日,在做一个跨页多选导出的功能时遇到一个问题:我在第一页勾选多条数据,将勾选数据的唯一标识存储在变量中,跳转到第二页,也勾选几条数据,将勾选数据的唯一标识存储在变量中,然后再跳转回第一页,并根据变量中存储的唯一标识和datagridview中的数据进行匹配,如果匹配上,则勾选,但是,我发现,在翻页时无法正确的获取checkbox的勾选状态,有些行明明已经勾选了,但是后台无法正确获取。于是,上网搜索,笔记如下:
要解决这个问题,需要两个步骤:
1.给datagridview添加事件:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
2.在获取勾选状态前,需要调用datagridview的EndInit()方法,结束编辑状态。