Вам не нужно перебирать какие-либо элементы управления, чтобы отключить или скрыть / увидеть их.
Каждая ячейка в элементе управления GridView на самом деле является ссылкой на таблицу HTML при визуализации (посмотрите на код на своей странице, используяFireFly или Inspector).
Так почему бы не выполнить итерацию по всем ячейкам и любым элементам управления, найденным в каждой ячейке, просто отключить их?Или вы можете просто пройтись по каждой строке вашего GridView и отключить или скрыть его напрямую, что повлияет на все внутри строки.
Скрытие с помощью справочного примера ячейки таблицы:
foreach (GridViewRow gRow in myGridView.Rows)
{
if (gRow.RowType == DataControlRowType.DataRow)
{
TableCellCollection tbcCol = (TableCellCollection)gRow.Cells;
foreach (TableCell tblCell in tbcCol)
tblCell.Enabled = false;
}
}
Такэто отключит все ячейки таблицы за ячейкой таблицы.
ИЛИ. Почему бы просто не отключить всю строку?
foreach (GridViewRow gRow in myGridView.Rows)
{
if (gRow.RowType == DataControlRowType.DataRow)
gRow.Enable = false;
}
Если вам нужно точно определить или отфильтровать определенные типы элементов управления (CheckBox, TextBox, Label и т. Д.) И влияют только на эти элементы управления, а затем просто проверяют их!
foreach (GridViewRow gRow in myGridView.Rows)
{
if (gRow.RowType == DataControlRowType.DataRow)
{
TableCellCollection tbcCol = (TableCellCollection)gRow.Cells;
foreach (TableCell tblCell in tbcCol)
if (((TextBox)tblCell) != null)
((TextBox)tblCell).Enable = false;
}
}