更改后获取数据网格视图复选框值
本文关键字:网格 视图 复选框 数据网 数据 获取 | 更新日期: 2023-09-27 18:36:00
我有几列DataGridView
,每行代表我的对象,有几个属性,如名称、id 等。更改Name column
Checkbox
后,我想更新我的对象如何获取我的列Checknox
状态?这是我尝试过的:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "Name")
{
}
}
我认为Name
是DataGridViewCheckBoxColumn
的名称
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "Name")
{
var isChecked = dataGridView1[e.ColumnIndex, e.RowIndex].Value as bool? ?? false;
//rest of logic
}
}
这是最简单,最安全的方法。
要循环访问行中的所有单元格,请使用以下代码:
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
foreach (DataGridViewCell cell in row.Cells)
{
object value = cell.Value;
}
也许您可以使用FindControl()
来获取复选框的状态:
CheckBox cbName = (CheckBox)dataGridView1.Columns[e.ColumnIndex].FindControl("cbName");
checkState = cbName.CheckState.toString();
或
isChecked = cbName.Checked;