Recupérer valeur/index d'un élément sélectionné dans un <select> HTML en C# [Résolu]

Messages postés
4
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juillet 2005
- - Dernière réponse : cs_Smoofy
Messages postés
4
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juillet 2005
- 28 juil. 2005 à 12:03
Voilà mon code HTML (dans mapage.aspx). La liste se créé correctement sans problème. J'ai bien renseigné propriétés id et name.

<SELECT id="lieu_accident" name="lieu_accident">
<OPTION value="" selected>Choisir...</OPTION>
<%
//rempli liste
System.Data.Odbc.OdbcConnection connexion new System.Data.Odbc.OdbcConnection((string)Application.Get("CS")); connexion.Open(); System.Data.Odbc.OdbcCommand oCmd new System.Data.Odbc.OdbcCommand(); oCmd.Connection = connexion; oCmd.CommandText = "select * from LIEU_ACCIDENTS"; System.Data.Odbc.OdbcDataReader oDRlieu = oCmd.ExecuteReader();
while (oDRlieu.Read()) Response.Write("<option value='" + oDRlieu.GetInt32(0) + "'>" + oDRlieu.GetString(1) + "</option>");
oDRlieu.Close();
%>
</SELECT>

Et voilà comment je tente de récupérer la valeur de l'élement sélectionné (dans mapage.aspx.cs) :
sql = sql + Request.Form["lieu_accident"]

Mais je n'arrive à récupérer aucune valeur ! :( QQ'un aurait une solution ?
Merci de votre aide et merci de m'avoir lu
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
100
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
27 janvier 2006
1
3
Merci
A ta place je ne ferais pas comme ça...



Dans ta page aspx, tu mets uniquement:







le name on s'en fout, heureusement que jesusonline n'a pas vu ton message, il t'aurait tiré les oreilles !



Ensuite dans ta page cs, pour faire propre:



private void Page_Load(object sender, System.EventArgs e)

{

if (! Page.IsPostBack )

{

chargerDdl();



Dans le page load tu appelles la fonction chargerDdl qui va te remplir ta ddl avec ta requete.



Ensuite pour recup la valeur (sur l'évenement onSelectedItemChanged par exemple)



DropDownList ddl = (DropDownList) sender;

int id = Convert.ToInt32(ddl.SelectedItem.Value);





Cab

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cabbry
Messages postés
100
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
27 janvier 2006
1
3
Merci
Ta deux solution soit tu la rempli tout seul soit tu le laisses faire:



tu fais ta requete et juste apres ton OdbcDataReader oDRsal = oCmd.ExecuteReader(); tu mets:



do

{

while (dataReader.Read())

{


ddl_sal.Items.Insert(i, new ListItem( dataReader.GetString(1),
Convert.ToString( i ) );

i++;

}

}

while (dataReader.NextResult());



Sachant que le Convert.ToString( i ) tu peux mettre a la place un champ de ta requete:

Convert.ToString(dataReader.GetInt32(0)) )



sinon si tu veux pas faire comme ça, tu peux essayer toujours apres ton datareader:



ddl_sal.DataSource = dataReader;

ddl_sal.DataTextField = "libelle";

ddl_sal.DataValueField = " le_nom_dun_champs_de_ta_requete ";

ddl_sal.DataBind();



Ca devrait marcher...



Cab

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cabbry
Messages postés
4
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juillet 2005
0
Merci
merci :)
Commenter la réponse de cs_Smoofy
Messages postés
4
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juillet 2005
0
Merci
en fait je pensais pouvoir y arriver, mais comment construit-on la droplist?

void ChargerListes()
{
OdbcConnection connexion = new OdbcConnection((string)Application.Get("CS"));
connexion.Open();
OdbcCommand oCmd = new OdbcCommand();
oCmd.Connection = connexion;

//ddl_sal
oCmd.CommandText= "select * from SALARIES;";
OdbcDataReader oDRsal = oCmd.ExecuteReader();
while (oDRsal.Read())
{
ddl_sal.Items.Add(oDRsal.GetString(1));
}

connexion.Close();
}

moi g fait ça mais ça marche pa :/
Commenter la réponse de cs_Smoofy
Messages postés
4
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juillet 2005
0
Merci
nikel merci bien :)
Commenter la réponse de cs_Smoofy