如何只获取datagridview的已检查行的ID

Muh*_*man 2 c# database checkbox datagridview

我有一个datagridview,其中包含从database.Columns include中的Subject表填充的主题列表

  • 选择(复选框)
  • SubjectId,
  • 主旨名称,
  • SubjectGroup.

现在我希望如果用户在任何所需的行上选择,则应将相应的SubjectId添加到List中.我已经制作并插入数据库中的所需表格.问题是我没有检测到我添加到此数据网格视图的新列复选框.

我的代码是:

    foreach (DataGridViewRow row in gvSubjectsOpted.Rows)
        {

            if (Convert.ToBoolean(gvSubjectsOpted.SelectedRows[0].Cells["SelectId"].Value=true))
            {
                olist.Add(gvSubjectsOpted.SelectedRows[0].Cells["SubjectId"].Value.ToString());
            }
        }
Run Code Online (Sandbox Code Playgroud)

Ble*_*ped 8

迟到了.尝试按名称获取复选框列时遇到了同样的问题,请使用索引.这是一个linq示例,假设复选框是第0列,TrueValue和FalseVale的存储值分别为true和false.

        var checkedRows = from DataGridViewRow r in gvSubjectsOpted.Rows
            where Convert.ToBoolean(r.Cells[0].Value) == true
            select r;

        foreach (var row in checkedRows)
        {
            olist.Add(row.Cells["SubjectId"].Value.ToString());
        }
Run Code Online (Sandbox Code Playgroud)


Jun*_*ith 1

你的问题与另一个SO问题类似。

检查此Datagridview 复选框列值和功能的答案。