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 :

Variables persistantes dans la page


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 69
    Par défaut Variables persistantes dans la page
    Bonjour,

    Dans la plupart des pages de mon application, j'ai besoin de variables persistante. Pour le moment je déclarait ces variables en private static , ce qui me permettait d'y avoir accès sur toute la page.

    Seulement j'ai gouté mon erreur quand j'ai eu plusieurs bug apriori inexplicable, qui sont finalement due au fait que les variables déclarées static sont partagés entre utilisateur.

    J'aurai donc voulu savoir le meilleur moyen d'avoir des variables persistante sur toute la page mais lié à la session de l'utilisateur sachant qu'il peut y avoir des variables DataTable assez lourdes.
    En cherchant sur le net j'ai trouvé les viewstates, les session et les hiddenfields.

    Seulement personne ne semble d'accord sur la meilleure solution parmi ces 3 là, donc j'aurai voulu votre avis pour mon cas.

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Freelance
    Inscrit en
    Février 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 312
    Par défaut
    salut,

    ces variables en private static , ce qui me permettait d'y avoir accès sur toute la page. -> les déclarer en protected das le code behind (sans le static) suffit pour y avoir accès dans toutes la page (code et aspx).

  3. #3
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par Champouil Voir le message
    j'ai besoin de variables persistante
    A quel point persistantes: le temps d'une requête ou de la session de l'internaute?

    Tu peux faire un dictionnaire privé statique private static Dictionary<string, TonObjet> taVariablePersistante = new Dictionary<string, TonObjet>(); dans un singleton en te servant du Session.SessionId comme clef du dictionnaire.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 69
    Par défaut
    A quel point persistantes: le temps d'une requête ou de la session de l'internaute?
    Seulement le temps de vie de la page.
    Depuis l'arrivé de l'utilisateur jusqu'à ce qu'il en change.

    Et j'ai mis en place le dictionnaire dans un pattern singleton ça fonctionne très bien mais n'est-ce pas fait pour avoir les variables sur toute la session pas juste que pour une page ?

    les déclarer en protected das le code behind (sans le static) suffit pour y avoir accès dans toutes la page.
    Ok, seulement ces variables gardent leurs valeurs en cas de postback ?

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Champouil Voir le message
    Seulement le temps de vie de la page
    Citation Envoyé par Champouil Voir le message
    Ok, seulement ces variables gardent leurs valeurs en cas de postback ?
    Faut savoir ce que tu veux.

    Une fois que la page est envoyée au client son cycle de vie est terminé.
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 69
    Par défaut
    Ok, je clarifie :

    Ce que je souhaite c'est que mes variables (affectés à ma page) gardent leurs valeurs tout le temps que l'utilisateur reste sur la page, même en cas de postback.

    Ce que je pourrai faire en passant mes variable dans le viewstate ou une variable de session à chaque postback mais justement ce je demande c'est quel est la meilleur méthode.

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    moi personnellement j'utilise les variable de session et d’ailleurs les varaible de session sont faites pour ça

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/02/2010, 13h43
  2. [MySQL] Récupérer variable tpl dans une page PHP
    Par diabli73 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/09/2008, 10h12
  3. Réponses: 11
    Dernier message: 23/11/2007, 10h31
  4. Récuperer des variables vbs dans une page php
    Par tese84 dans le forum VBScript
    Réponses: 18
    Dernier message: 19/06/2007, 10h28
  5. Réponses: 3
    Dernier message: 27/11/2006, 14h16

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