2010-12-01 57 views
0

Je suis capable d'itérer chaque contrôle de zone de texte dans "MainContents" en utilisant le code ci-dessous. Q1: Y a-t-il un moyen plus court? (Pour obtenir tous les contrôles dans "MainContents"?)Itérer chaque contrôle de zone de texte dans "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 

Répondre

0

Je me suis converti ce de C# à VB, pardonnez l'incorrection potentiel. C'est ce qu'on appelle la récursivité.

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