Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di NAREDA
    Registrato dal
    Oct 2002
    Messaggi
    25

    [2.0-VB]ciclo su controlli di pagina da user control

    Ho usato dei panel con modalità visibile/non visibile in due user control utilizzati in una pagina.

    Il primo user control
    riguarda due campi data inizio e data fine. cliccando su un link inizio il primo panel diventanto visibile mostra il calendario per l'inizio; se clicco su fine, il primo panel diventa visibile=false e il secondo visibile =true

    Il secondo user control ha una funzionalità simile alla precedente.

    Vorrei agire da uno dei due user control per rendere invisibili tutti gli altri pannelli che non sto utilizzando e che sono rimasti visibili con una funzione del tipo
    Dim p As Panel = New Panel
    Dim pag As Page = New Page
    For Each p In pag.Controls
    p.Visible = False
    Next
    il problema è che dentro a page non trova i controlli che sono nidificati evidentemente in altri oggetti.

    Qualche idea o consiglio?

    Grazie
    -ANDREA-

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    negli usercontrol metti una proprieta' che comunica con l'esterno, che setta la visibilita' / invisibilita' dei pannelli interni...

  3. #3
    Utente di HTML.it L'avatar di NAREDA
    Registrato dal
    Oct 2002
    Messaggi
    25
    Molto gentile per la risposta proverò ad indagare su questa via dato che sono alle prime armi con asp.net e nei miei controlli non ho ancora utilizzato proprietà.

    Grazie.
    -ANDREA-

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Nell' ASCX:
    codice:
        Public Property proxy_pannello() As boolean
            Get
                  Return pannello.visible
            End Get
            Set(ByVal Value As Boolean)
                pannello.visible = value
            End Set
        End Property

    e nella pagina ASPX (nel code-behind):
    codice:
     NomeUserControl.proxy_pannello = true/false

  5. #5
    Utente di HTML.it L'avatar di NAREDA
    Registrato dal
    Oct 2002
    Messaggi
    25
    Dopo un'ardua ricerca e svariate prove sono riuscito.

    Ho dovuto però fare quanto di seguito, per pizzicare i controlli utente che stavano nidificati all'interno di fromview/InsertItemTemplate/EditItemTemplate etc etc..

    nella ASPX

    Protected WithEvents uc As Ccercasede
    Protected WithEvents uc2 As datainizioefine

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    uc = DirectCast(LoadControl("..\wuc\cercasede.ascx"), Ccercasede)
    uc.xvisibile = False
    uc2 = DirectCast(LoadControl("..\wuc\datainizioefine.asc x"), datainizioefine)
    uc2.xvisibile = False

    Nella ASCX Più o meno quanto ahai scritto tu.

    Dato che ho l'impressione che ti muovi con una certa sicurezza, saresti così gentile da darmi un parere sul metodo utilizzato,"DirectCast(LoadControl("..\wuc\cercase de.ascx"), Ccercasede)"?

    Grazie, per stasera me ne vado a casa, domani sarò felice di leggere eventuale pensiero a tal proposito.
    -ANDREA-

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Si, e' la giusta metodologia per ottenere una istanza dello usercontrol, per poi agire sulle sue proprietà.
    Cioe' il casting dal CONTROL restituito da LoadControl al tipo specifico del controllo, dato appunto dal nome della classe.


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.