Datagrid & dropdownlist

cs_bossou Messages postés 71 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 7 octobre 2011 - 5 nov. 2010 à 11:35
pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 - 5 nov. 2010 à 15:16
Bonjour.
j'ai un formulaire aspx dans lequel j'ai mis un datagrid qui contient une dropdownlist. lorsque je sélectionne un item dans ma dropdownlist et que je valide, ma page se recharge et ma dropdownlist me retourne toujours le premier élément de ma liste quelque soit l'élément sélectionné.
quelqu'un aurait'il une idée afin de m'aider à trouver une solution!
Je vous remercie d'avance.

5 réponses

pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 1
5 nov. 2010 à 14:11
Bonjour,

il se peut que tu recharges ta grille dans ton Page_Load,
si c'est le cas il faut que tu utilise le
if(!IsPostback)
{
chargeTaGrille
}

sinon, envoi ton code pour voir, ce n'est pas grand chose.

Bon courage
0
cs_bossou Messages postés 71 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 7 octobre 2011 1
5 nov. 2010 à 14:22
merci pour votre réponse. voici mon code. je ne met que le SelectedIndexChanged parce que c'est le bout du code qui correspond à ma dropdownlist après sélection d'un élément lorsque que je valide ma page se recharge et l'élément sélectionné n'est pas enregistré. il enregistre toujours le premier élément de ma liste.

public void ddl_profils_list_SelectedIndexChanged(object sender, System.EventArgs e)
{

int nbre = dg_Applis_Profils.Items.Count - 1;

for (int ix = 1; ix <= nbre; ix++)
{

object myControl = dg_Applis_Profils.Items[ix].Cells[1].FindControl("ddl_profils_list");

DropDownList ddl = (DropDownList)sender;

//// ddl.FindControl("ddl_profils_list");

ddl = myControl as DropDownList;

object myControl_label = dg_Applis_Profils.Items[ix].Cells[1].FindControl("Label_profil");

Label labelProfil = myControl_label as Label;

labelProfil.Text = ddl.SelectedItem.ToString();



ddl.AutoPostBack = false;
}
0
pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 1
5 nov. 2010 à 14:57
Je viens de tester ton code, et je ne comprend pas pourquoi tu utilise tous ça.

J'ai essayer avec un simple code et cela fonctionne :

ASPX :
        <Columns>
            
                
                    
                        
                        
                        
                    
                
            
        </Columns>


CODE BEHIND :
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            IList<string> lsString = new List<string>();
            lsString.Add("cat 1");
            lsString.Add("cat 2");

            dtGrid.DataSource = lsString;
            dtGrid.DataBind();
        }
    }
    protected void dtGrid_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList ddl = (DropDownList)sender;
        string laValeur = ddl.SelectedValue;
    }


(Le page_load me sert juste pour apporter des données)

En espérant t'avoir aidé, retiens moi au courant
0
cs_bossou Messages postés 71 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 7 octobre 2011 1
5 nov. 2010 à 15:06
le souci est que les données chargées dans ma dropdownlist sont dynamiques et sont récupérées à partir d'une table de ma base de données. et le nombre de dropdownlist peut varié en fonction des enregistrements dans ma table. je ne peux donc pas charger mon contrôl dans la page_load
0

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

Posez votre question
pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 1
5 nov. 2010 à 15:16
Mais ce n'est pas grave, ici ca me servait juste pour te montrer l'exemple. Utilise juste ce qu'il y a dans

protected void dtGrid_SelectedIndexChanged(object sender, EventArgs e)
0
Rejoignez-nous