c# - 基于Datatable在Data grid View中标记复选框

标签 c# datagridview datagridviewcheckboxcell

我有一个数据 GridView dataGridView1,它与数据表 dt1 绑定(bind)。

数据表dt1有以下数据:

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

我在 Data gridview 中放置了一个复选框,我希望在状态 = 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; 
    }
} 

最佳答案

代替

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

关于c# - 基于Datatable在Data grid View中标记复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661524/

相关文章:

c# - 同一 DataGridView 列中的控件在初始化网格时不呈现

c# - 生成 pdf 缩略图(开源/免费)

c# - 如何将主题显示为列标题以及学生姓名和总分

c# - 有没有办法停止 DataGridViewCheckBoxColumn 单击时自动检查?

c# - Winforms DataGridView 数据绑定(bind)到复杂类型/嵌套属性

c# - AllowUserToAddRows 不适用于 DataGridView 上的 List<> 数据源

c# - datagridview 复选框列中最后选中的行未选中

c# - 使用 Entity Framework Code First 创建文本列

c# - 遍历 Flags Enum 中的值 - 但保持顺序

c# - C# 是否在声明非空字符串时隐式分配一个空字符串?