编辑数据源后,无法以编程方式选中DGV中的复选框列
本文关键字:方式选 DGV 复选框 编程 数据源 编辑 | 更新日期: 2023-09-27 18:24:42
我的DGV有一个点击事件,它通过数据表绑定。每当选中复选框列时,它都会验证所选行,并通过消息框向用户显示条件。如果用户单击"是",我将编辑数据表中的备注列。我的问题是,我需要保留复选标记。它在AcceptChanges()之后消失;
这是我试过的。
DialogResult OptScndary = MessageBox.Show("This employee's primary position is not required for the project but the secondary position is. Would you like to request this employee for his/her secondary position?", "Secondary Position", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (OptScndary == DialogResult.Yes)
{
DataRow[] Row = AvailableEmp_dataTable.Select("EmpID='" + Sel_EmpID + "'");
Row[0]["Remarks"] = "Secondary position requested";
AvailableEmp_dataTable.AcceptChanges();
RequestBtn.Enabled = true;
foreach (DataGridViewRow DGVRow in EmpInfoGrid.Rows)
{
if (DGVRow.Cells["EmpID"].Value.ToString().Equals(Sel_EmpID))
{
DGVRow.Cells[MarkColumn.Name].Value = true;
}
}
}
创建已检查行的集合。保存ID并在DataGridViewRowAdding(不确定确切的名称)事件上添加一个过程,以根据选中行的集合更改复选框的值
转到此链接。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx
每当我们重新绑定数据网格视图时,就会触发rowdatabound事件。因此,当您选中复选框时,只需收集选中复选框的行即可。当用户选中一个复选框时,让我们处理您的逻辑,然后重新绑定datagridview,在rowdatabound事件中,将该行与您在复选框选中事件期间收集的集合中存储的ID匹配,如果匹配,则在该行中找到复选框控件,并将其标记为选中。
希望这能有所帮助。