如何在网格视图的单列中获取总选中复选框并将其显示在标签中

本文关键字:复选框 标签 显示 网格 视图 获取 单列中 | 更新日期: 2023-09-27 18:32:50

我需要一些帮助。我主要搜索网站,但没有找到所需的查询代码。我正在窗口应用程序中为"出勤"模块编码,这里我有一个网格视图,其中包含学生姓名(文本框列),滚动号(文本框列),存在(复选框列),缺席(复选框列),请假(复选框列)。

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

任何建议将不胜感激。 GridView 屏幕截图

如何在网格视图的单列中获取总选中复选框并将其显示在标签中

您可以使用

它来计算所有在场的学生(如评论中所述,如果有人不在场,则默认情况下他们缺席)

   int present = 0;
   foreach (DataRow row in Students.Rows)
        {
           if (Student[row][2].Checked)//where i is the column in the datagridview
            {
                present++
            } 
        }

至于只选中一个框,请参考StackOverflow上的这篇文章

我自己通过以下代码找到了答案:首先,我将 gridview 中的复选框 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
        {
        }
    }