我正在向DataSet动态添加布尔列。 DataSet的表是GridView的DataSource,它自动生成列。
问题:此动态生成列的复选框全部被禁用。我该如何启用它们?
ds.Tables["Transactions"].Columns.Add("Retry", typeof(System.Boolean));
ds.Tables["Transactions"].Columns["Retry"].ReadOnly = false;
换句话说,如何控制GridView如何为布尔字段生成CheckBox? (为什么将ReadOnly设置为False没有效果?)
谢谢!
答案 0 :(得分:1)
您应该添加CellContentClick事件处理程序并否定该单元格已有的值。喜欢:
private void dgvRaceDetails_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 5)
{
dgvRaceDetails.Rows[e.RowIndex].Cells[5].Value =
!(Boolean)dgvRaceDetails.Rows[e.RowIndex].Cells[5].Value;
}
if (e.ColumnIndex == 6)
{
dgvRaceDetails.Rows[e.RowIndex].Cells[6].Value =
!(Boolean)dgvRaceDetails.Rows[e.RowIndex].Cells[6].Value;
}
}
答案 1 :(得分:0)
我相信它们会自动禁用,直到它们有值。
DataRow row = ds.Tables["Transactions"].NewRow();
row("Retry") = true;
ds.Tables["Transactions"].Rows.Add(row)
答案 2 :(得分:-1)
将Boolean的值设置为true。其默认值为false。我希望这会有所帮助。