Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    23

    [VB.NET] Tutti i controlli di un tipo?

    Ciao a tutti.. altra domandina rapida rapida:
    Esiste un modo per identificare tutti i controlli di un certo tipo all'interno della mia pagina?

    Vorrei provare a settare uno sfondo di colore verde a tutti i controlli button che ho nella pagina.

    Io avevo scritto:
    For Each Button in Page.Controls
    Button.backcolor=System.drawing.color.Green
    Next

    Ma era troppo bello per essere vero

    Ciao a tutti

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
                For Each controllo As Control In Form1.Controls
                    If TypeOf controllo Is TextBox Then
                        Dim tb As TextBox = DirectCast(controllo, TextBox)
                        ' ...
                    End If          
                Next

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    23
    Ciao! Grazie mille per la risposta!
    Ora ho inserito questo codice nella mia pagina ASP.NET ma purtroppo non mi trova i controlli!

    Ecco qui il codice da me inserito:
    codice:
        Sub AzzeraColori()
            For Each controllo As Control In Page.Controls
                If TypeOf controllo Is LinkButton Then
                    Dim myButt As LinkButton = DirectCast(controllo, LinkButton)
                    myButt.BackColor = Drawing.Color.White
                End If
            Next
        End Sub
    Il problema è che se debuggo sulla chiamata della funzione, il ciclo viene eseguito solo 2 volte!
    Ho pensato che il problema fosse il fatto che i pulsanti(linkbutton) siano all'interno di un update panel, cosi al posto di Page.Controls ho messo UpdatePanel1.controls. Ma cosi facendo il ciclo viene eseguito 1 sola volta!

    Mi scuso a priori per la basilarità della questione, ma sto muovendo i primi passi! Sorry!

    EDIT: dimenticavo: stessa cosa con il nome della form (frmUpBar) che contiene i controlli

  4. #4
    prova a cercare in Form1, non in Page
    Non avere problemi è un problema.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    23
    come ho gia scritto, neanche nella form (che non si chiama form1 ma l'ho rinominata frmUpBar) mi trova i controlli...

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    scusa non avevo letto bene. ora cerco l'esempio che funzionava

    (Ciko2005 sono io)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    23
    Attendo fiducioso!

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim lb As List(Of Control) = l.GetChildControls(Me.Form, GetType(Button))
            For Each b As Button In lb
                b.BackColor = Color.Green
            Next
        End Sub
    
        Public Function GetChildControls(ByVal container As Control, ByVal type As Type) As List(Of Control)
            Dim result As New List(Of Control)()
            For Each ctrl As Control In container.Controls
                If ctrl.GetType Is type Then
                    result.Add(ctrl)
                End If
                result.AddRange(GetChildControls(ctrl, type))
            Next
            Return result
        End Function
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ottimo.
    Io ci ero riuscito con un codicillo piu' semplice, quando lo trovo lo posto

    (Ho un enorme progetto con tutti gli esempi di questi anni...alle volte non trovo con facilita' cio' che cerco)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.