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 :

MonFieldSet.Text => Variable globale?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut MonFieldSet.Text => Variable globale?
    Bonsoir.

    Je suis occupé à travailler sur mes pages de modification de profil client et j'ai un problème assez préoccupant...

    Comme il s'agit d'une page de modification de données, dans ma méthode Page_Load je charge dans mes champs les différentes valeurs contenues en DB.

    Le client voit ainsi sur la page les valeurs qu'il avait entrées au départ.
    Seulement voilà, les modifications apportées dans ces champs ne sont pas pris en compte par la suite dans la méthode appelée par le click sur mon bouton "Modification" !

    Ainsi, la valeur de mon champ prenom.Text lors de la page load sera identiquement le même que celui lors du parcours de ma méthode de modification et celà même si la valeur a été changée par le client!

    Je pense que je dois avoir un problème de compréhension...

    Voici le code c#:

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Title = "Modification de votre profil";
            modification.Attributes.Add("onClick", "recopie()");
            Joueurs joueur = (Joueurs)HttpContext.Current.Session["joueur"];
            if (joueur == null)
            {
                Response.Redirect("identification.aspx");
            }
            else
            {
                joueur = Joueurs.chercher(joueur.getPseudo());
                Session["joueur"] = joueur;
                passwordM.Text = joueur.getPassword();
                emailM.Text = joueur.getEmail();
                prenom.Text = joueur.getPrenom();
                nom.Text = joueur.getNom();
                urlAvatar.Text = joueur.getUrlAvatar();
                urlSite.Text = joueur.getUrlSite();
                description2.Text = joueur.getDescription();
                char [] sep = {'/',' '};
                string [] dateS = joueur.getDateNaissance().Split(sep);
                int anneeI = int.Parse(dateS[2]); 
                int moisI = int.Parse(dateS[1]);
                int jourI = int.Parse(dateS[0]);           
                for (int i = 1; i < 13; i++)
                {
                    jour.Items.Add("" + i);
                    mois.Items.Add("" + i);
                }
                for (int i = 13; i < 32; i++)
                {
                    jour.Items.Add("" + i);
                }
                DateTime today = DateTime.Now;
                for (int i = today.Year; i > 1969; i--)
                {
                    annee.Items.Add("" + i);
                }
                jour.SelectedValue = "" + jourI;
                mois.SelectedValue = "" + moisI;
                annee.SelectedValue = "" + anneeI;
     
                string[] paysListe = { "Belgique", "France", "Nederlands", "Deutschland", "Italia", "United Kingdom", "Luxembourg", "Spain", "Sweden", "Danmark", "Norwegian", "Switzerland", "EU", "USA", "World" };
                string[] paysRef ={ "be", "fr", "nl", "de", "it", "uk", "lu", "sp", "sw", "dk", "no", "ch", "eu", "us", "wo" };
                pays.Items.Add(new ListItem(paysListe[0], paysRef[0], true));
                string paysS = joueur.getPays();
                for (int i = 1; i < paysListe.Length; i++)
                {
                    pays.Items.Add(new ListItem(paysListe[i], paysRef[i]));
                }
                pays.SelectedValue = joueur.getPays();
                ListItem item = new ListItem("Homme","0");
                sexe.Items.Add(item);
                item = new ListItem("Femme", "1"); ;
                sexe.Items.Add(item);
                sexe.SelectedValue = ""+joueur.getSexe();
            }
        }
        protected void modification_Click(object sender, EventArgs e)
        {
            Joueurs joueur = (Joueurs)HttpContext.Current.Session["joueur"];
            if (joueur == null)
            {
                Response.Redirect("identification.aspx");
            }
            else
            {
                if (!passwordM.Text.Equals(""))
                {
                    string passwordMD5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(passwordM.Text, "md5");
                    joueur.setPassword(passwordMD5);
                }
                string prenomM = prenom.Text;
                if (!prenomM.Equals(""))
                    joueur.setPrenom(prenomM);
                if (!nom.Text.Equals(""))
                    joueur.setNom(nom.Text);
                if (!urlAvatar.Text.Equals(""))
                    joueur.setUrlAvatar(urlAvatar.Text);
                if (!urlSite.Text.Equals(""))
                    joueur.setUrlSite(urlSite.Text);
                if (!description2.Text.Equals(""))
                    joueur.setDescription(description2.Text);
                joueur.setPays(pays.SelectedValue);
                joueur.setSexe(int.Parse(sexe.SelectedValue));
                string jourM = jour.SelectedValue;
                if (jourM.Length < 2)
                    jourM = "0" + jour.SelectedValue;
                joueur.setDateNaissance(annee.SelectedValue + "-" + mois.SelectedValue + "-" + jourM);
     
                Joueurs.modifier(joueur);
                Session["joueur"] = joueur;
            }
        }
    }
    Et voici le code de ma page:

    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
    57
    58
    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="modifMembre.aspx.cs" Inherits="Default2" Title="Untitled Page" ValidateRequest="false"%>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <h1>Modification de votre profil</h1>
        <fieldset>
            <script type="text/javascript" src="lib/encodeDecodeHTML.js"></script>
            <script type="text/javascript">
                window.onload = function() {
                    document.getElementById('ctl00_ContentPlaceHolder1_description').value = html_encode(document.getElementById('ctl00_ContentPlaceHolder1_description2').value);
                }
                function recopie() {
                    document.getElementById('ctl00_ContentPlaceHolder1_description2').value=html_decode(getIframeContent());
                }
            </script>
        <script type="text/javascript" src="lib/html2xhtml.js"></script>
        <script type="text/javascript" src="lib/richTextPerso.js"></script>
            <div class="centrer">
                <asp:Label id="Label2" runat="server" CssClass="label" Text="Password* :"></asp:Label> 
                <asp:TextBox id="passwordM" runat="server" CssClass="input" TextMode="Password"></asp:TextBox> 
     
                <asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" CssClass="erreurCombo" Width="165px" 
                    ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="4 à 32 caractères!" ControlToValidate="passwordM" ValidationExpression="^.{4,32}$"></asp:RegularExpressionValidator><br /><br />
                <asp:Label id="Label3" runat="server" CssClass="label" Text="Email* :"></asp:Label> 
                <asp:TextBox id="emailM" runat="server" CssClass="input"></asp:TextBox> 
                <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" CssClass="erreurCombo" Width="164px" 
                    ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="Forme: x@x.x" ControlToValidate="emailM" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator> 
                <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" CssClass="erreurCombo" Width="163px"
                    ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="Email requis!" ControlToValidate="emailM"></asp:RequiredFieldValidator><br /><br />
                <asp:Label id="Label4" runat="server" CssClass="label" Text="Prénom :"></asp:Label> 
                <asp:TextBox id="prenom" runat="server" CssClass="input"></asp:TextBox><br /><br />
                <asp:Label id="Label5" runat="server" CssClass="label" Text="Nom :"></asp:Label>
                <asp:TextBox id="nom" runat="server" CssClass="input"></asp:TextBox><br /><br />
                <asp:Label id="Label7" runat="server" CssClass="label" Text="Naissance :"></asp:Label>
                <span class="input"> 
                    <asp:DropDownList id="jour" runat="server"></asp:DropDownList>
                    <asp:DropDownList id="mois" runat="server"></asp:DropDownList>
                    <asp:DropDownList id="annee" runat="server"></asp:DropDownList>
                </span><br /><br />
                <asp:Label id="Label8" runat="server" CssClass="label" Text="Sexe :"></asp:Label>
                <span class="input"> 
                    <asp:RadioButtonList ID="sexe" runat="server">
                    </asp:RadioButtonList>
                </span><br /><br /><br />
                <asp:Label id="Label10" runat="server" CssClass="label" Text="Pays :"></asp:Label>
                <span class="input">
                    <asp:DropDownList id="pays" runat="server"></asp:DropDownList>
                </span><br /><br />
                <asp:Label id="Label6" runat="server" CssClass="label" Text="Url Avatar :"></asp:Label> 
                <asp:TextBox id="urlAvatar" runat="server" CssClass="input"></asp:TextBox><br /><br />
                <asp:Label id="Label9" runat="server" CssClass="label" Text="Url Site :"></asp:Label> 
                <asp:TextBox id="urlSite" runat="server" CssClass="input"></asp:TextBox><br /><br />
                <asp:Label id="Label11" runat="server" CssClass="label" Text="Description :"></asp:Label><br /><br />
                <asp:TextBox ID="description" runat="server" CssClass="RTE" TextMode="MultiLine"
                    Width="450px"></asp:TextBox><br /><br />
                <asp:Button id="modification" runat="server" Text="Modification du Profil" OnClick="modification_Click"></asp:Button>
                <asp:TextBox ID="description2" runat="server" TextMode="MultiLine" CssClass="invisible"></asp:TextBox> 
            </div>
        </fieldset>
    </asp:Content>
    PS: Notez le ValidateRequest="false" tout en haut.


    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Charge uniquement les données si Page.IsPostBack est à false.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Charge uniquement les données si Page.IsPostBack est à false.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Page_Load( ... )
    {
     
      if( !IsPostBack )
      {
      // valeurs par défaut...
      }
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Super!
    Quand je disais que çà allait être stupide...
    Enfin c'est assez déroutant comme système par rapport à PHP ou JSP... faut s'y faire

  5. #5
    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
    Par défaut
    Citation Envoyé par k o D Voir le message
    Super!
    Quand je disais que çà allait être stupide...
    Enfin c'est assez déroutant comme système par rapport à PHP ou JSP... faut s'y faire
    Bah tu fais du vrai dév maintenant

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Bah tu fais du vrai dév maintenant
    Mmmmmmmmmmmmmmmmmm

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/07/2013, 15h49
  2. [AC-2007] Afficher une variable globale dans une zone de texte dans un état
    Par spawny161184 dans le forum IHM
    Réponses: 2
    Dernier message: 25/10/2011, 22h48
  3. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22
  4. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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