Bonjour,
J'ai une base de données composée de trois champ Nom,Prenom et Email.
J'ai dans ma page aspx une liste déroulante retournant le nom et prénom des personnes, et une textbox contenant l'adresse email de la personne sélectionnée dans la liste.
je voudrais que le contenu de ma textbox se mette à jour à chaque fois que je sélectionne un choix différent dans ma liste.
J'ai essayé en rajoutant la fonction OnSelectedIndexChanged="MiseAjourTextBox", mais cela ne marche pas . Je sais qu'il faut utiliser une mise à jour partielle mais je ne vois pas comment faire lorsque cela est différent d'un évenement onclick
Ma liste déroulante et mon texbox sont remplis de cette manière au chargement de ma page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <asp:UpdatePanel ID="MiseAJourListe" runat="server"> <ContentTemplate> <div class="StyleTextBox"> <asp:TextBox ID="Email" runat="server" Width="245px" ></asp:TextBox> </div> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ... ?/> </Triggers> </asp:UpdatePanel>
Ma fonction "MiseAJourTextBox" :
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 protected void Page_Load(object sender, EventArgs e) { /*Définition de la chaine de connexion*/ string c_string = @"data source=JF\PRO; initial catalog=BaseExemples; integrated security=true"; SqlConnection cx = new SqlConnection(c_string); /*Remplissage de la liste déroulante pour le nom de la personne destinataire*/ string rqNomPersonneDestinataire = " select Nom,Prénom,Email,Nom+' '+Prénom as NomPrenom from PersonnesDestinataires"; SqlCommand sqlNomPersonneDestinataire = new SqlCommand(rqNomPersonneDestinataire, cx); //Ouverture de la connexion cx.Open(); SqlDataReader ResultatRequeteNomPersonneDestinataire = sqlNomPersonneDestinataire.ExecuteReader(); this.NomDestinataire.DataSource = ResultatRequeteNomPersonneDestinataire; this.NomDestinataire.DataValueField = "Nom"; this.NomDestinataire.DataTextField = "NomPrenom"; this.NomDestinataire.DataBind(); this.NomDestinataire.SelectedIndex = 0; //Fermeture du reader ResultatRequeteNomPersonneDestinataire.Close(); //Récupération du choix de l'utilisateur dans la liste déroulante string NomUtilisateur = NomDestinataire.SelectedItem.Value.ToString(); /*Remplissage de l'adresse E-mail de la personne destinataire sélectionnée dans la liste déroulante*/ string rqEmailPersonneDestinataire = " select Email from PersonnesDestinataires where Nom=@NomPersonne"; SqlCommand sqlEmailPersonneDestinataire = new SqlCommand(rqEmailPersonneDestinataire, cx); sqlEmailPersonneDestinataire.Parameters.Add("@NomPersonne", SqlDbType.VarChar, 50); //Affectation d'une valeur à sqlEmailPersonneDestinataire sqlEmailPersonneDestinataire.Parameters["@NomPersonne"].Value = NomUtilisateur; string EmailUtilisateur = (string)sqlEmailPersonneDestinataire.ExecuteScalar(); //Remplissage de la TextBox Email en fonction du choix de la liste déroulante Email.Text = EmailUtilisateur; }
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 protected void MiseAjourTextBox(object sender, EventArgs e) { /*Définition de la chaine de connexion*/ string c_string = @"data source=JF\PRO; initial catalog=BaseExemples; integrated security=true"; SqlConnection cx = new SqlConnection(c_string); { //Ouverture de la connexion cx.Open(); //Récupération du choix de l'utilisateur dans la liste déroulante string NomUtilisateur = NomDestinataire.SelectedItem.Value.ToString(); /*Remplissage de l'adresse E-mail de la personne destinataire sélectionnée dans la liste déroulante*/ string rqEmailPersonneDestinataire = " select Email from PersonnesDestinataires where Nom=@NomPersonne"; SqlCommand sqlEmailPersonneDestinataire = new SqlCommand(rqEmailPersonneDestinataire, cx); sqlEmailPersonneDestinataire.Parameters.Add("@NomPersonne", SqlDbType.VarChar, 50); //Affectation d'une valeur à sqlEmailPersonneDestinataire sqlEmailPersonneDestinataire.Parameters["@NomPersonne"].Value = NomUtilisateur; string EmailUtilisateur = (string)sqlEmailPersonneDestinataire.ExecuteScalar(); //Remplissage de la TextBox Email en fonction du choix de la liste déroulante Email.Text = EmailUtilisateur; } }
Si quelqu'un voit comment faire ? Merci
Partager