在数据网格视图中标记复选框基于数据表

时间:2013-12-18 15:02:05

标签: c# datagridview datagridviewcheckboxcell

我有一个数据网格视图dataGridView1,它与数据表dt1绑定。

数据表dt1包含以下数据:

name | status
-----+-------
abc  |   0
abd  |   1
abc  |   0
abc  |   1
abc  |   1

我在数据网格视图中放了一个复选框,我希望复选框的默认值为check,其中status = 1。

DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
checkColumn.Name = "X";
checkColumn.HeaderText = "X";

dataGridView1.Columns.Add(checkColumn);

for (int x = 0; x < countSubCategory; x++)
{
    if (dt1.Rows[x].ItemArray[1].ToString() == "1")
    {
          // here I want to check the checkbox but I don't know what to write here
          checkColumn.Checked= true;
    }

    else { 
        checkColumn.Value = false; 
    }
} 

1 个答案:

答案 0 :(得分:1)

代替

checkColumn.Checked= true;

DataGridName[x][position_of_checkBox_column].Value = true;

但最好是处理数据而不是UI。

您可以向DataTable添加Column-expression。

dt1.Columns.Add(new DataColumn("X", typeof(bool), "status = 1"));

这一行代替了问题上的所有代码!


有时,更简单有效,更改SQL语句。

相反

SELECT id, status

SELECT id, IIF(status = 1, true, false) AS statusBool