如何获取 GridView 中特定单元格内的所有控件

How to get all the controls inside a specific cell in a GridView

我正在 GridView 中动态生成 CheckBox 控件。现在我需要验证是否至少选择了一个 CheckBox,并且在保存数据时我需要遍历单元格内的所有控件。

现在的问题是我无法做到 grdApproverDetails.Rows[i].FindControl('controlID'),因为 ID 是根据控件计数动态生成的。如线程所示。

这是 GridView 的外观,Approver Name 是我需要在其中查找控件(如果是 CheckBox)的列。

如何获取 GridView 单元格内的所有控件并循环访问?

您可以使用(手写代码)获取复选框:

foreach (GridViewRow row in grdApproverDetails.Rows)
{
    for (int k = 0; k < row.Cells.Count; k++)
    {
       for (int i = 0; i < row.Cells[k].Controls.Count; i++)
       {
           Control control = row.Cells[k].Controls[i];
           if(control is CheckBox)
           {
               CheckBox chk = control as CheckBox;
               if(chk != null && chk.Checked)
               //...
           }
       }
    }
}

多亏了 Emanuele

,我才开始工作
foreach (GridViewRow row in grdApproverDetails.Rows)
{
     List<CheckBox> listCkb = new List<CheckBox>();

     ControlCollection cntrColl=  row.Cells[2].Controls;
     foreach (Control cntr in cntrColl)
     {
         if (cntr is CheckBox && cntr.ID.Contains("approvernamesdynamic_"))
         {

         }
      }
}