如何获取 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_"))
{
}
}
}
我正在 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_"))
{
}
}
}