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

Résolu
cs_Smoofy Messages postés 4 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juillet 2005 - 26 juil. 2005 à 17:55
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
A voir également:

5 réponses

cabbry Messages postés 100 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 27 janvier 2006 1
27 juil. 2005 à 08:42
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
3
cabbry Messages postés 100 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 27 janvier 2006 1
27 juil. 2005 à 11:50
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
3
cs_Smoofy Messages postés 4 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juillet 2005
27 juil. 2005 à 10:20
merci :)
0
cs_Smoofy Messages postés 4 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juillet 2005
27 juil. 2005 à 10:55
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 :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
nikel merci bien :)
0
Rejoignez-nous