Итерировать каждый элемент управления текстового поля в «MainContents»? - PullRequest
0 голосов
/ 01 декабря 2010

Я могу перебрать каждый элемент управления текстового поля в «MainContents», используя код ниже. Q1: есть более короткий путь? (чтобы получить все элементы управления в "MainContents"?)

    For Each ctrl As Control In Page.Controls
        For Each subctrl As Control In ctrl.Controls
            For Each subctrlsub As Control In subctrl.Controls
                If TypeOf subctrlsub Is System.Web.UI.WebControls.ContentPlaceHolder Then
                    If subctrlsub.ClientID = "MainContent" Then
                        For Each ct As Control In subctrlsub.Controls
                            If TypeOf ct Is System.Web.UI.WebControls.TextBox Then
                                For r As Short = 1 To 8
                                    For c As Short = 1 To 6
                                        .... (do something) ...
                                    Next
                                Next
                            End If
                        Next
                    End If
                End If
            Next
        Next
    Next

1 Ответ

0 голосов
/ 01 декабря 2010

Я преобразовал это из C # в VB, простите за потенциальную некорректность. Это называется рекурсия.

Protected Sub DoSomething(ctrl As Control)
   For Each c As Control In ctrl.Controls
       If TypeOf c Is ContentPlaceHolder Then
          If c.ClientID = "MainContent" Then
                           // Do your stuff
          End If
       End If

       If c.Controls.Count > 0 Then
          DoSomething(c)
       End If
   Next
End Sub
...