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 :

[C# 2.0] Comment stocker une variable dans une webform


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2003
    Messages : 197
    Points : 115
    Points
    115
    Par défaut [C# 2.0] Comment stocker une variable dans une webform
    Bonjour à tous !

    J'ai besoin de créer un système qui permet de naviguer d'un mois à l'autre.

    J'ai un label et deux boutons. lors du chargement de ma page, j'affecte autoamtiquement le mois en cours (du coup mon label affiche "Novembre")

    Maintenant quand on clique sur les boutons avant ou apres je voudrais afficher le mois d'avant ou d'apres.

    Mon probleme vient du fait que j'arrive pas a conserver le mois en cours !

    C'est à dire que ma page s'initialise (j'ai un objet qui transforme le numéro de mois en lettre), j'ai déclarer une variable public dans ma page, que j'affecte aux form_load. Ensuite lorsque j'appuie sur mes boutons j'ai remarquer que ma variable était automatiquement réinitialisé à null.

    Voici mon code :

    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
     
    public partial class Collaborateur_CRA : System.Web.UI.Page
    {
        public C_Mois Mois;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                MoisAAfficher(DateTime.Now.Month);
            }
        }
        // affiche le mois en lettre dans le label
        private void MoisAAfficher(int NumMois)
        {
            Mois = new C_Mois(NumMois);
            this.Lbl_Mois.Text = Mois.ToString();
        }
        // Active le mois precedent
        protected void Bt_PrecMois_Click(object sender, EventArgs e)
        {
            //on recupere le mois en cours
            int NumMois = Mois.GetNumMois();
            // on enleve un mois
            NumMois--;
            MoisAAfficher(NumMois);
        }
     
        // active le mois d'apres
        protected void Bt_NextMois_Click(object sender, EventArgs e)
        {
            int NumMois = Mois.GetNumMois();
            //On ajoute un mois
            NumMois++;
            MoisAAfficher(NumMois);
        }
    }
    Or quand j'effectue mes clicks sur mes boutons la variable Mois est toujours à null.

    Maintenant si je ne fais pas de dans ce cas ma variable revient immédiatement au mois en cours.

    Comment puis je faire pour conserver une valeur sans qu'elle ne soit réinitialisé à chaque form_load. Doit on necessairement la stocker dans la variable Session ???

    Merci d'avance de vos réponse

    @+

    Hirochirak
    -- Se lance dans l'asp.net 2.0 --

    Made In Taïwan

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 55
    Points
    55
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected void Bt_PrecMois_Click(object sender, EventArgs e)
        {
            //on recupere le mois en cours
    //au lieu de  int NumMois = Mois.GetNumMois();
    int NumMois= (int) this.Lbl_Mois.Text 
            // on enleve un mois
            NumMois--;
            MoisAAfficher(NumMois);
        }

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2003
    Messages : 197
    Points : 115
    Points
    115
    Par défaut
    Donc en fait dans mon label j'envoie le mois en lettre.

    J'ai essayer via les possibilités du framework de transformer une valeur de type int (le numéro du mois) en lettre mais je n'ai pas trouvé.

    Du coup c'est pour ca que je suis passé par un objet, celui ci stocke le numéro du mois et me permet de renvoyer le libelle en lettre du mois voulu

    @+

    Hirochirak
    -- Se lance dans l'asp.net 2.0 --

    Made In Taïwan

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 55
    Points
    55
    Par défaut
    autant pour moi, soit tu inséres un controle HTML Hidden executé coté serveur (runat="server") pour enregistrer le Numéro du mois
    int NumMois = (int) hidden1.value
    soit tu crées une fonction qui renvoie le N° du mois à partir du nom du mois
    int NumMois= tafonction(Lbl_Mois.Text)

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Tu peux aussi utiliser le viewstate pour conserver une valeur.

    viewstate["unevariable"]="une valeur"

    Cette variable persistera entre chaque requête POST.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2003
    Messages : 197
    Points : 115
    Points
    115
    Par défaut
    Merci beaucoup de vos réponses !

    Bon j'ai opter pour l'utilisation de l'objet Calendar !!!

    Mais en revanche ViewState parait vraiment être une bonne solution pour conserver des variables dans la page

    Merci encore de vos lumières

    @+

    HIrochirak
    -- Se lance dans l'asp.net 2.0 --

    Made In Taïwan

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2014, 10h23
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Comment récupérer le contenu d'une URL dans une variable ?
    Par Fildz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2006, 09h26
  4. Réponses: 7
    Dernier message: 02/05/2006, 16h28
  5. Stocker un champs d'une table dans une variable
    Par ju360modena dans le forum ASP
    Réponses: 3
    Dernier message: 15/06/2005, 08h44

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