编辑数据源后,无法以编程方式选中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; 
           }
     }
}

编辑数据源后,无法以编程方式选中DGV中的复选框列

创建已检查行的集合。保存ID并在DataGridViewRowAdding(不确定确切的名称)事件上添加一个过程,以根据选中行的集合更改复选框的值

转到此链接。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

每当我们重新绑定数据网格视图时,就会触发rowdatabound事件。因此,当您选中复选框时,只需收集选中复选框的行即可。当用户选中一个复选框时,让我们处理您的逻辑,然后重新绑定datagridview,在rowdatabound事件中,将该行与您在复选框选中事件期间收集的集合中存储的ID匹配,如果匹配,则在该行中找到复选框控件,并将其标记为选中。

希望这能有所帮助。