IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Une variable Public qui ne l'est pas


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut Une variable Public qui ne l'est pas
    Bonjour

    Dans un fichier Photos1.aspx.vb, juste en dessous de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Partial Class _Default
        Inherits System.Web.UI.Page
     
    'je déclare une variable 
    Public NomFic as ArrayList 
     
    'Dans un evènement _Click, j'ai les instructions suivantes
     
        Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
    Dim NomFic as new ArrayLit
     
    NomFic.Clear()
    For i=1 to .....
    NomFic.Add(une variable strind)
    Next
     
    'Ensuite j'appele la routine affiche
     
    affiche(R) 'R étant un nombre compris entre 0 et la longueur de ma liste moins 1
     
        End Sub
     
    'Quand j'arrive dans la routine affiche: 
    Protected Sub affiche(ByVal R As Integer)
    Ma liste NomFic est vide !!!!!!

    J'étais persuadé que le fait de la déclarer Public elle serait conservée.

    Je suppose que je m'y suis mal pris.

    Quelqu'un peut-il m'aider SVP

    Claude Azoulai

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu déclares 2 NomFic, une public et une interne à ta fonction ImageClick.
    Dans ta fonction ImageClick, tu remplis la variable interne

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut
    Merci à lutecefalco

    Il me semble que c'est ce que j'ai fait.

    Dans la zone de déclaration j'ai déclaré :
    Public NomFic as ArrayList

    et dans ma sub ImageClick j'ai déclaré :
    Dim NomFic as new ArrayLit, et puis je remplis la variable interne.

    Et c'est lorsque j'appelle (dans ma sub ImageClick) la routine affiche() que ma variable se vide.

    Ou alors, j'ai mal compris vos explications et je suis désolé.

    Claude Azoulai

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    T'as mal compris je pense.
    Montre moi ta fonction Afficher pour voir

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut
    Merci à vous

    Voici les deux routines concernées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
        Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
            Dim NomFic As New ArrayList
            Dim Sens As New ArrayList
            Dim Fic As String
            Dim I As Integer, R As Double, L, H
            Dim Image As New Image
            If Passe Then Exit Sub
            Chemin = "C:\Inetpub\wwwroot\Essais\Images\"
            Fic = Dir(Chemin & "*.jpg")
            If Fic <> "" Then
                I = -1
                NomFic.Clear()
                Sens.Clear()
                Dim Image1 As System.Drawing.Image
                Do While Fic <> ""
                    I += 1
                    NomFic.Add(Fic)
                    Image1 = System.Drawing.Image.FromFile(Server.MapPath("~/Images/" & Fic))
                    H = Image1.Height
                    L = Image1.Width
                    If L > H Then
                        Sens.Add("Paysage")
                    Else
                        Sens.Add("Portrait")
                    End If
                    Fic = Dir()
                Loop
            End If
            Max = I
            Rang = 0
            btMoins.Visible = True
            btPlus.Visible = True
            Label1.Visible = True
            Image0.Visible = True
            Image1.Visible = True
            Image2.Visible = True
            ImageButton1.Visible = False
            affiche(Rang)
            Label1.Text = NomFic(Rang)
            Passe = True
            Session("_Max") = Max
            Session("_Rang") = Rang
            Session("_Nomfic") = NomFic
            Session("_Sens") = Sens
        End Sub
        Protected Sub affiche(ByVal R As Integer)
            If Sens(R) = "Paysage" Then
                Me.Image1.Visible = True
                Me.Image2.Visible = False
                Me.Image1.ImageUrl = "~/Images/" & NomFic(R)
            Else
                Me.Image2.Visible = True
                Me.Image1.Visible = False
                Me.Image2.ImageUrl = "~/Images/" & NomFic(R)
            End If
        End Sub
    Qu'en pensez vous ?

    Claude Azoulai

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Que dans la fonction image click, tu settes la variable NomFic interne à la fonction et non la variable public de la page.
    Dans la fonction affiche, tu fais appel à la variable public qui est donc vide.

    Dans image click, tu dois mettre
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim NomFic As New ArrayList

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    la variable NomFic déclarée locale dans la fonction masque la variable public NomFic, et est utilisée à la place de cette dernière. Il suffit de supprimer la déclaration locale, et la variable publique sera utilisée. En cas de doute, tu peux toujours préciser this.NomFic.

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    En VB, c'est Me et non this

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    ah oui tiens... j'oublie toujours qu'il y a d'autres langages que C#

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut
    Merci à vous tous

    A lutecefalco

    Je viens (avec reconnaissance) de recevoir une leçon.
    En effet, je débute en ASP.NET et bien que j'ai de nombreuses années de programmation en VB (depuis VB3) je n'ai quasiment jamais eu besoin d'utiliser ce genre de déclaration.
    Merci pour ton aide

    Claude Azoulai

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 12/06/2006, 10h39
  2. [VBA] taille max d'une variable public
    Par gigs dans le forum Général VBA
    Réponses: 9
    Dernier message: 23/11/2005, 16h27
  3. image dans une iframe div qui ne s'efface pas
    Par Invité(e) dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 26/10/2005, 12h19
  4. erreur de valaur nulle..qui ne l'est pas :-(
    Par bachilbouzouk dans le forum ASP
    Réponses: 7
    Dernier message: 20/04/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo