La premiere valeur d'une DropDownList ?

Signaler
Messages postés
33
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
23 janvier 2012
-
Messages postés
33
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
23 janvier 2012
-
Salut,


Comment pourrai-je attribuer la
premier valeur (d’un requête) à une dropdownlist au chargement de la page
ASP.Net ?

je fais :
protectedvoid
Page_Load(object sender, EventArgs e)




   

{






        DropDownList1.SelectedValue = "1";






…(sachant que les valeurs de la
liste sont numérotées depuis 0 ,1,2,3 ...)




mais ca ne marche pas ?


help.

9 réponses

Messages postés
30
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
17 juin 2009
1
Salut
je pense qu'il faut utilisé     DropDownList1.SelectedIndex 1;<?XML:NAMESPACE PREFIX O /??>

//c'est un int 
   
Messages postés
33
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
23 janvier 2012

Ca ne marche toujours pas , je
fais :


DropDownList1.SelectedIndex = 1;




Et puis j’essaye d’afficher la
valeur de la liste :



MessageBox
.Show("La valeur de la
personne selectionnee est : " +
DropDownList1.SelectedValue.ToString());





Mais ca me
donne tjs chaine vide ???????
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
2
Bonjour,

Peut tu préciser comment tu remplit ta DropDownList ?
Il ne faut pas oublier de la charger avant, (DropDownList1.DataBind()), si elle est reliée à une requête à une BDD, si c'est plutôt aprés un formulaire précise le s'il te plait.
Messages postés
33
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
23 janvier 2012

 

Merci,


Oui , effectivement je remplie ma
DropDownList a partir d’une requête de <st1:personname productid="la BD" w:st="on">la
BD</st1:personname> :



<
asp
:
DropDownList






             
ID
="DropDownList1"
runat
="server"
DataSourceID
="SqlDataSource1"
DataTextField
="nomprenom"







             
DataValueField
="id_p"
BackColor
="#C0FFC0"
Height
="33px"
Width
="188px"
AutoPostBack
="true"
OnSelectedIndexChanged
="DropDownList1_SelectedIndexChanged">







         

</
asp
:
DropDownList
>







<
center
>






   
<
asp
:
SqlDataSource
ID
="SqlDataSource1"
runat
="server"
ConnectionString
="
<%$ ConnectionStrings:Gestion_RH_HopitalConnectionString %>"






           
SelectCommand
="SELECT nom+ ' - ' + prenom as nomprenom,id_p FROM
[Personne]"></
asp
:
SqlDataSource
>







 



   

&nbsp;
</
center
>





 

Et je veux au chargement de la
page d’affecter a DropDownList.value la première valeur…
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
2
Bon déjà pourquoi met tu le SelectedIndex à 1 si tu veux la première valeur ? (ça serait plutôt 0), ensuite tu n'as pas besoin d'utiliser le ToString(), la valeur donnée par SelectedValue est toujours en string mais bon ça c'est des petits détails.
A quel moment fait tu ta MessageBox ? Le problème doit surement venir de là.
Sinon au chargement de ta page ton DropDownList se rempli quand même ?
Messages postés
30
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
17 juin 2009
1
et ce que tu peut remplire le DropDownList dans le CodeBehind C#, je vais te donner un exemple du code pour faire ça en PageLoad() du CodeBehind C# :

protected

void Page_Load(
object sender,
EventArgs e)
{

if
(!IsPostBack)
{
DropDownList1.Clear();
using
(
SqlConnection conn =
new
SqlConnectio (
ConfigurationManager.ConnectionStrings[
"Gestion_RH_HopitalConnectionString "].ConnectionString))
{
conn.Open();

using (
SqlCommand cmd =
new
SqlCommand(
"SELECT nom+ ' - ' + prenom as nomprenom, id_p FROM [Personne]", conn))
{

SqlDataReader dr = cmd.ExecuteReader(
CommandBehavior.CloseConnection);
     while(dr.read())
       {
       DropDownList1.Items.Add(
new
ListItem(dr.GetValue(0).ToString(), dr.GetValue(1).ToString()
));
        }
}
}
   DropDownList1.SelectedIndex=1;

}
}

j'aimerai s'avoir est ce que ce code ça marche ou pas !!!
bonne journée !.
Messages postés
33
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
23 janvier 2012

Merci,


A quel moment fait tu ta MessageBox ?

Je fais MessageBox des le chargement de la page ASP.NET

as:
protectedvoid
Page_Load(object sender, EventArgs e)


{


     DropDownList1.SelectedIndex = 0;


     MessageBox.Show("La valeur de la personne selectionnee est : "
+  DropDownList1.SelectedValue); //.ToString()

}

Le problème doit surement venir de là. ? (Estce que l'affectation de la DownDropList se fait après le chargement de la page ou avant(comme prévu ?) )

Sinon au chargement de ta page ton DropDownList se rempli quand même ?

Oui , il se rempli correctement

=> oui tu as raison , j’ai essayé le
MessageBox(ds. Un click bt.) après la fct. De chargement de la page et ca
marche 

 Déduction :

Il ne faut pas essayer d’afficher
la première valeur de DropDownList dans la fct. Load Page mais plutôt après le
chargement de la page(car le remplissage de la liste se fait a la fin de Load Page…
)

Thanks for help.

Regards.
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
2
N'oublie pas de préciser que la réponse te convient pour ceux qui aurait le même problème que toi,
bon courage pour la suite.
Messages postés
33
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
23 janvier 2012

Yes

Merci , oui ca marche en remplissant <st1:personname productid="la DropDownList" w:st="on">la DropDownList</st1:personname>
manuellement en C# :






 






if
(!IsPostBack)





{






   
//DropDownList3.Clear();







 







   
//        chaine WebConfigurationManager.ConnectionStrings["Gestion_RH_HopitalConnectionString"].ToString();






       
<st1:place w:st="on">
<st1:city w:st="on">
SqlConnection
</st1:city>
<st1:state w:st="on">Conn</st1:state>
</st1:place>
= newSqlConnection(chaine);






       

Conn.Open();






       
String
myselect = "SELECT nom+ ' - ' + prenom as
nomprenom, id_p FROM [Personne]";






       
SqlCommand
comm = newSqlCommand(myselect,
<st1:state w:st="on"><st1:place w:st="on">Conn</st1:place></st1:state>);






       
<st1:street w:st="on">
<st1:address w:st="on">
SqlDataReader RD</st1:address>
</st1:street>
= comm.ExecuteReader();






       
if
(RD.HasRows)






        {






           
while
(RD.Read())






            {






                DropDownList3.Items.Add(newListItem(RD.GetValue(0).ToString(),
RD.GetValue(1).ToString()));






            }






        }






        








   
/*using
(SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings["Gestion_RH_HopitalConnectionString
"].ConnectionString))







    {






        conn.Open();






        using (SqlCommand cmd = new
SqlCommand("SELECT nom+ ' - ' + prenom as nomprenom, id_p FROM
[Personne]", conn))






        {






            SqlDataReader dr =
cmd.ExecuteReader(CommandBehavior.CloseConnection);






            while (dr.Read())






            {






                DropDownList1.Items.Add(new
ListItem(dr.GetValue(0).ToString(), dr.GetValue(1).ToString()));






            }






        }






    }*/






    DropDownList3.SelectedIndex = 1;






   
MessageBox.Show("test" + DropDownList3.SelectedValue);




} //fin if !PostBack


Regards.