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

    Variabile string e recupero da usercontrol

    Ciao a tutti, vi espongo il problema al quale ho trovato una soluzione che non mi soddisfa...

    Ho una variabile di tipo string nella sub Page_Load della mia pagina principale e voglio leggere questa variabile dalla sub Page_Load dell'usercontrol contenuto nella pagina. C'è un sistema più pulito di utilizzare una variabile di sessione?

    Grazie,
    Elisa

    PS: vb net (Framework 1.1)

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,262
    perchè la sessione è sporca?
    puoi utilizzare la Cache oppure Application oppure altro ma ci devi dire cosa intendi per pulito?
    I got the remedy

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,086

    Re: Variabile string e recupero da usercontrol

    Originariamente inviato da T'Pol
    Ciao a tutti, vi espongo il problema al quale ho trovato una soluzione che non mi soddisfa...

    Ho una variabile di tipo string nella sub Page_Load della mia pagina principale e voglio leggere questa variabile dalla sub Page_Load dell'usercontrol contenuto nella pagina. C'è un sistema più pulito di utilizzare una variabile di sessione?

    Grazie,
    Elisa

    PS: vb net (Framework 1.1)


    :master: forse è la logica da rivedere. A mio modesto parere sarebbe forse meglio fornire all'UC un metodo per recuperare questa informazione. In altri termini, non è l'UC che deve recuperare informazioni, ma è chi istanzia l'UC a fornirle.

    Naturalmente se non ho capito male
    Pietro

  4. #4
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    299
    Concordo con Pietro09: aggiungi allo UC una property e valorizza quella, dalla pagina che istanzia lo UserControl.

    Occhio a quello che ha detto albgen: Cache e Application hanno visibilità per *tutti* gli utenti della web application! Se sono variabili utente, c'è il rischio che se le sovrascrivano tra di loro usando questi oggetti.

    tk

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    14
    Mmmmm.... forse ho capito male io.... dunque:

    Nella pagina contenitore ho (nel Page_Load):
    EBE.Prop = str

    con cui mi valorizzo la property nel controllo utente che è:
    Private _Prop As String

    Public Property Prop() As String
    Get
    Return _Prop
    End Get
    Set(ByVal Value As String)
    _Prop = Value
    End Set
    End Property

    Facendo il debug il valore nel controllo utente ci passa ma quando provo a leggere la property dal Page_Load sempre del controllo utente il valore si è "svuotato"...

    ...aiuto mi sono legata invece di spiegarmi!

    PS: Cache e Application non andrebbero bene

  6. #6
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,262
    se non scrivi il codice che valorizza e ritorna il valore dalla session la vedo difficile capire cosa c'è che non va...
    I got the remedy

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,086
    i valori vanno sempre salvati, altrimenti si perdono per sempre

    Quello di sotto è un esempio. Non so se ti possa servire.
    E' una proprietà public di un UserControl

    codice:
        Private _ImageUrlTrue As String = Nothing
        Public Property ImageUrlTrue() As String
            Get
                If Me._ImageUrlTrue Is Nothing Then
                    Dim o As Object = Me.ViewState("ImageUrlTrue")
                    If o Is Nothing Then
                        Me._ImageUrlTrue = Me.TemplateSourceDirectory & "/1.bmp" 'Valore predefinito
                    Else
                        Me._ImageUrlTrue = CStr(Me.ViewState("ImageUrlTrue"))
                    End If
                End If
                Return Me._ImageUrlTrue
    
            End Get
            Set(ByVal value As String)
                Me.ViewState("ImageUrlTrue") = value
                Me._ImageUrlTrue = value
            End Set
        End Property
    Pietro

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    14
    Ciao Pietro, grazie innanzitutto.
    Avevo già provato qualcosa del genere ma il problema credo sia il seguente (se riesco a spiegarmi): io invio il valore alla property nel controllo utente dalla pagina principale e il ViewState non funziona perchè nel momento in cui, prima di continuare ad eseguire il codice sul controllo, torna sulla pagina principale per chiudere la sub... quindi è un po' come cambiare pagina. Questo credo sia il motivo per cui non si mantiene il valore di questa benedetta variabile. A questo punto credo che mi tocchi riprendere la strada della variabile di sessione, che è leggibile sempre e ovunque.

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,086
    Veramente non capisco. E' inutile perdersi in chiacchiere. Basta fare un esempio minimale di UserControl con una proprietà pubblica che deve persistere. Basta aggiungere una pagina che carica l'UserControl. E basta soprattutto mostrare il codice perché è questo il terreno su cui possiamo intenderci.
    Ciao.
    Pietro

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 © 2020 vBulletin Solutions, Inc. All rights reserved.