如何在gridview的单列中获取总选中的复选框并将其显示到标签中

How to get the total checked checkbox in a single column of gridview and show it into a label

我需要一些帮助。我搜索了大部分网站,但没有找到我的查询所需的代码。 我在 window 应用程序中为 "Attendance of Class" 的模块编码,这里我有一个 gridview,其中包含学生姓名(文本框列)、卷号(文本框列)、存在(复选框列)、缺席(复选框列), 休假(复选框列)。

  1. 我希望在一行中只选中一个复选框。
  2. 我想在标签名称中显示当前学生总数(表示 "present checkbox" 列选中复选框的总数)。

如有任何建议,我们将不胜感激。 GridView ScreenShot

您可以使用它来计算所有在场学生(如评论中所述,如果有人不在场,则默认情况下他们不在)

   int present = 0;
   foreach (DataRow row in Students.Rows)
        {

           if (Student[row][2].Checked)//where i is the column in the datagridview
            {
                present++
            } 
        }

关于只勾选一个框,参考这个Post on Whosebug

我自己通过以下代码找到了答案: 首先,我将 gridview.and 中的 checkBox True 值设置为 1,将 false 设置为 0,应用以下代码:-

 private int countPresenttudents()
    {
        int d = 0, e = 0;

        for (int i = 0; i < (dgvAttendance.Rows.Count - 1); i++)
        {
            d = Convert.ToInt32(dgvAttendance.Rows[i].Cells["Absent"].Value.ToString());
            e = e + d; //storing total qty into variable 
        }
        return e;
    }

并将其应用到标签上-

private void btnGetTotal_Click(object sender, EventArgs e)
    {
        try
        {
            lblPresent.Text = Convert.ToString(countpresent());
            lblAbsent.Text = Convert.ToString(countabsent());
            lblLeave.Text=Convert.ToString(countleave());
        }
        catch
        {
        }
    }