Recuperer la valeur du cellule du gridview dans un dropdownlist

Signaler
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Statut
Membre
Dernière intervention
17 juillet 2014
-
 niyericsson -
Bonjour, a tous...

Je voudrais juste vous demander si vous pourriez m'aider a resoudre ce probleme.
Au fait j'ai un gridview qui contenant des donnees venu de la base de donnees.
A ce dernier j'ai ajoute un lien pour la modification et un autre pour la supression.Je voudrais juste savoir comment faire recuperer la valeur du cellule de ce gridview dans un dropdownlist...Pour les autres champs ca marche mais quand j'arrive sur un dropdownlist je n'arrive pas a recuperer cette valeur..j'ai lu de nombreux articles et je ne suis pas parvenu a resoudre ce probleme.

Voici mon code behind


 protected void ImageButton_Click(object sender, ImageClickEventArgs e)
       
     {
            ImageButton imgBtn = (ImageButton)sender;
            GridViewRow grv = (GridViewRow)imgBtn.NamingContainer;
            lblId.Text = grv.Cells[0].Text;
            tBoxName.Text = grv.Cells[1].Text;
            tBoxPrenom.Text = grv.Cells[2].Text;
            tBoxSurnom.Text=grv.Cells[3].Text;
            myDropDowlist.Text = grv.Cells[4].Text;         

            txtDate.Text = grv.Cells[5].Text;
            txtPhone.Text = grv.Cells[6].Text;
            txtJob.Text = grv.Cells[7].Text;
            txtEmail.Text = grv.Cells[8].Text;
            tBoxAdress.Text = grv.Cells[9].Text;

            this.ModalPopExtender1.Show();

     }



Je vous remercie d'avance pour votre aide...

4 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
18
salut,

il faut que tu sélectionnes l'item du dropDownList,
si tu n'as pas la valeur directe pour SelectedItem,tu pourras faire ceci

// recherche le selectedValue par  texte
myDropDowlist.SelectedValue = myDropDowlist.Items.FindByText(grv.Cells[4].Text);

// Si le texte et la valeur sont identiques, tu pourras faire :
myDropDowlist.SelectedValue = grv.Cells[4].Text;


bye...
Merci Yann_lo_sann pour ton soutien tout en m'excusant du retard pris pour vous repondre a ce message,

j'ai juste essaye le code suivant:

ddlPays.selectedValue = ddlPays.items.FindByText(grv.Cells[4].Text).ToString();

mais j'obtiens l'erreur suivant:

ddlPays has a selectedValue which is invalid because it does not exist in the list of items...

Merci encore une fois de vouloir m'aider car ca fait longtemps que je cherche le truc et que j'ai pas encore trouve...

a ++
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
18
Salut,

En fait il suffit de remplacer le toString() par Value.
FindByText() renvoi un ListItem et pas une valeur

// Exemple: une DDL pays (texte = nom du pays et valeur = code)

// Ajoute FRANCE (FR)
ddlPays.Items.Add( new ListItem("FRANCE", "FR") );

// Ajoute ESPAGNE (ES)
ddlPays.Items.Add( new ListItem("ESPAGNE", "ES") );


// selectionne Espagne par "texte"
ddlPays.SelectedValue = ddlPays.Items.FindByText("ESPAGNE").Value;

//ou par "valeur"
ddlPays.SelectedValue = ddlPays.Items.FindByValue("ES").Value;



// tu peux aussi selectionner directement l'item 
ddlPays.SelectedItem = ddlPays.Items.FindByValue("ES");


bye...
Merci Yann_lo_sann,

Je m'excuse pour ne pas vous avoir repondu tres top mais je voulais juste signaler que je remplis mon avec les donnees provenant de la bdd avec le code suivant:




DataTable tbl1 = new DataTable();
tbl1.Columns.Add("@countryName", typeof(string));
tbl1.Columns.Add("@countryId", typeof(int));
this.ddlPays.DataSource = tbl1;

string rqt1 = "select countryId,countryName from tbl_countries";
SqlCommand cmd1 = new SqlCommand(rqt1, conn1);

SqlDataReader reader1 = cmd1.ExecuteReader();
tbl1.Load(reader1);
this.ddlPays.DataTextField = "countryName";
this.ddlPays.DataValueField = "countryId";
this.ddlPays.DataBind();



merci bcp pour votre assistance...