Remplissage automatique d'une textbox en fonction du choix d'une liste déroulante
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
Code:
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 liste déroulante et mon texbox sont remplis de cette manière au chargement de ma page :
Code:
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;
} |
Ma fonction "MiseAJourTextBox" :
Code:
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