У меня уже был некоторый удобный код VB.NET, который может это сделать. Это просто заняло небольшую настройку. Его можно легко перенести на C #.
Protected Sub Page_Load()
FindCheckBoxes(MyTable)
End Sub
Protected Sub FindCheckBoxes(ByRef ParentControl As Control)
For Each ctrl As Control In ParentControl.Controls
If TypeOf ctrl Is CheckBox Then
If DirectCast(ctrl, CheckBox).Checked Then
' do something
Else
' do something else
End If
ElseIf ctrl.HasControls Then
FindCheckBoxes(ctrl)
End If
Next
End Sub
Это достаточно гибко, чтобы найти флажки внутри чего-либо (не только таблицы). Тем не менее, в вашем конкретном сценарии вы можете предпочесть что-то вроде ответа noblethrasher.
Мой ответ - рекурсивный метод обхода дерева, поиск каждого флажка. Но noblethrasher's - это простой, понятный и более эффективный алгоритм, если вы знаете, в каком столбце искать флажок, и знаете, что он не скрыт внутри дополнительных контейнеров.