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:
• 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