Metodo di estensione FindControl web ricorsivo

Scritto da  Massimo Bonanni il lunedì 14 marzo 2011  •  Linguaggio: C#,VB   • Livello: 100


Il seguente metodo di estensione implementa un FindControl ricorsivo:

VB

<Extension()> _
Public Function FindControlRecursive(ByVal container As Control, _
                                    ByVal controlID As String) As Control
  Dim ctrlRet As Control = Nothing
  If container IsNot Nothing Then
    ctrlRet = container.FindControl(controlID)
    If ctrlRet Is Nothing Then
      For Each ctrl As Control In container.Controls
        ctrlRet = ctrl.FindControlRecursive(controlID)
        If ctrlRet IsNot Nothing Then Exit For
      Next
    End If
  End If
  Return ctrlRet
End Function

 

C#

public static Control FindControlRecursive(this Control container,
                                                String controlID)
{
  Control ctrlRet = null;
  if (container != null)
  {
    ctrlRet = container.FindControl(controlID);
    if (ctrlRet == null)
    {
      foreach (Control ctrl in container.Controls)
      {
        ctrlRet = ctrl.FindControlRecursive(controlID);
        if (ctrlRet != null) break;
      }
    }
  }
  return ctrlRet;
}

 


Tags: ASP.NET,Web control

 
x