Un metodo di estensione per recuperare i controlli di una pagina web in base al tipo

Scritto da  Massimo Bonanni il lunedì 29 agosto 2011  •  Linguaggio: VB   • Livello: 100


A volte può essere utile recuperare, all'interno di una pagina o di un controllo web contenitore, la lista dei controlli di un certo tipo. Il seguente metodo di estensione esegue questa operazione:

VB.NET

<Extension()> _
Public Function FindControlByTypeRecursive(ByVal container As Control, _
                                           ByVal controlType As Type) As IEnumerable(Of Control)
    Dim ctrlList As List(Of Control) = Nothing
    If container IsNot Nothing Then
        ctrlList = (From c In container.Controls.OfType(Of Control)() _
                    Where controlType.IsInstanceOfType(c) _
                    Select c).ToList()
        For Each ctrl In container.Controls.OfType(Of Control)()
           ctrlList.AddRange(ctrl.FindControlByTypeRecursive(controlType))
        Next
    End If
    Return ctrlList
End Function

 


Tags: ASP.NET,Linq,web,web content

 
x