IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Mise à jour DropDownList


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur E&D
    Inscrit en
    Février 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur E&D

    Informations forums :
    Inscription : Février 2010
    Messages : 48
    Points : 34
    Points
    34
    Par défaut [C#] Mise à jour DropDownList
    Bonjour à tous,

    J'ai un petit probleme dans mon appli ASP.NET C#.
    J'ai une première DropDownList, que j'ai remplis avec des infos d'une base de données. Vu que je voulais afficher plusieurs informations, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach (DataRow row in dtTable.Rows)
     {
          string ligne = row["MVLOT"].ToString() + " -- " + row["MVLOTFAB"] + " -- " + row["LIBELLEARTICLE"] + " -- " + row["LIBELLEFAMILLE"];
          ld_numLot.Items.Add(ligne);
     }
     ld_numLot.DataBind();
    ça c'est bon.

    Ce que je veut faire, c'est lorsque l'utilisateur a choisis une ligne, c'est afficher dans différentes zones les valeurs selectionner.
    Dans la zone libelleArticle on affiche row["LIBELLEARTICLE"] etc ...
    Mais je ne sais pas comment faire ça.

    J'ai essayé avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int ligneChoisis = ld_numLot.SelectedIndex;
    string x = dtTable.Rows[ligneChoisis].Field<string>("MVLOT");
    Mais j'obtiens une exception :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Voila si vous pouviez me dire si c'est la bonne méthode et me corriger je vous en serais reconnaissant

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    Bonjour,
    Pour récupérer la résultat sélectionné par l'utilisateur, tu peux utiliser la méthode OnSelectedIndexChanged de ta ta dropdownlist (n'oubli pas de mettre autopostback à true)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DDL_SelectedIndexChanged">
            </asp:DropDownList>
    Et après dans le code behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void OnSelectedIndexChanged(object sender, EventArgs e)
    {
    string valeurSelectionne = DropDownList1.SelectedValue;
    }
    Accepter les critiques, c'est le premier pas pour être un bon développeur ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Points : 411
    Points
    411
    Par défaut
    Salut,

    Je pense que l'exception se produit car ton objet nommé dtTable est a null (tu confirmera facilement en debug).

    Si c'est le cas c'est parce que tu ne garde pas ton information dans dtTable entre les 2 postbacks.

    Il faut comprendre que lorsque la page est rendue au client en aspnet, toutes les variables sont vidées (contrairement a du winForm par exemple).

    Si tu veux les réutiliser, il faut soit les réassigner (donc refaire ta requête pour renseigner ton dtTable), soit utiliser un mécanisme de persistance pour garder l'info)

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur E&D
    Inscrit en
    Février 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur E&D

    Informations forums :
    Inscription : Février 2010
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par aguetat Voir le message
    Bonjour,
    Pour récupérer la résultat sélectionné par l'utilisateur, tu peux utiliser la méthode OnSelectedIndexChanged de ta ta dropdownlist (n'oubli pas de mettre autopostback à true)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DDL_SelectedIndexChanged">
            </asp:DropDownList>
    Et après dans le code behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void OnSelectedIndexChanged(object sender, EventArgs e)
    {
    string valeurSelectionne = DropDownList1.SelectedValue;
    }
    Oui je sais que l'on peut ainsi récupérer la valeur choisis par l'utilisateur. Cependant cette méthode ne permet pas d'accéder à un élément de la ligne (une ligne est composée de plusieurs renseignement venant de la bdd).
    Or c'est cela que je veut faire, récupérer UNE information.
    Sous Access c'était simple il suffisait de faire ld.Columns[id].value. Mais en c# ça n'existe pas ....

    Citation Envoyé par nah666 Voir le message
    Salut,

    Je pense que l'exception se produit car ton objet nommé dtTable est a null (tu confirmera facilement en debug).

    Si c'est le cas c'est parce que tu ne garde pas ton information dans dtTable entre les 2 postbacks.

    Il faut comprendre que lorsque la page est rendue au client en aspnet, toutes les variables sont vidées (contrairement a du winForm par exemple).

    Si tu veux les réutiliser, il faut soit les réassigner (donc refaire ta requête pour renseigner ton dtTable), soit utiliser un mécanisme de persistance pour garder l'info)
    Ok, je cherche justement un moyen de garder les infos, pour ne pas avoir à réexécuter la requete ..... Peut tu m'expliquer ce qu'est ce mécanisme de persistance dont tu parles ?
    Merci

Discussions similaires

  1. [Débutant] Mise à jour "Dropdownlists" et "gridview"
    Par Dewey12 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/11/2012, 09h41
  2. mise à jour d'une dropdownlist
    Par manar-info dans le forum Développement Web avec .NET
    Réponses: 5
    Dernier message: 30/05/2011, 10h30
  3. Mise à jour DropDownList
    Par yaki13 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 30/03/2011, 09h41
  4. Mise à jour d'une dropdownList par une autre
    Par kejifamas dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/06/2010, 09h01
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo