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#:
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
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; } } }
PS: Notez le ValidateRequest="false" tout en haut.
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>
Merci d'avance pour vos réponses.
Partager