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 :

probleme avec une liste de type DropDownList mise a l interieur d'un ItemTemplate


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Par défaut probleme avec une liste de type DropDownList mise a l interieur d'un ItemTemplate
    bonjour,
    J'ai besoin d'afficher une liste de type DropDownList à l'interiuer d'un DataGrid:

    comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <asp:TemplateColumn HeaderText="pays">
                <ItemTemplate>
     
    		<asp:DropDownList id="listpays"     DataValueField="paysId" DataTextField = "paysNom" runat="server" 
                   AppendDataBoundItems="true">
                 <asp:ListItem Value="">--Choisissez un pays--</asp:ListItem>
                 </asp:DropDownList>
     
                 </ItemTemplate>
                 </asp:TemplateColumn>
    le probleme c'est que je peux pas réféencer ma liste par son id dans mon code behind pour la remplir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     public void Load_liste_pays( ) {
     
            ArrayList listPays = new ArrayList();
     
            for (int i = 0; i < findListPays.TListPays.Length; i++)
            {
                tPays = findListPays.TListPays[i];
                listPays.Add(tPays);
            }
            listpays.DataSource = listPays; 
            listpays.DataBind(); 
        }
    j'obtient l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The name 'listpays' does not exist in the current context
    quelqu'un sait comment faire pour referencer listpays?

    merci

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Il te faut alimenter la DDL dans l'évenent OnItemDataBound de ta GridView

  3. #3
    Membre éclairé Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Par défaut
    J'ai pas tres bien compris ta reponse,tu peux me donner plus de clarification stp?

  4. #4
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Ta GridView possède uin evenement OnItemDataBound (je crois que c'est le nom exact).
    Tu met le code qui alimente ta DropDownList dedans, ce qui donnes (en gros et de mémoire) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    protected void daraGrid1_ItemDataBound(object sender, DataBoundItemEventArgs e)
    {
       DropDownList ddl = (DropDownList)e.Item.FindControl("dropDownList1");
       ddl.DataSource = GetArrayList();
       ddl.DataBind();
    }
     
    private ArrayList GetArrayList()
    {
       ArrayList listPays = new ArrayList();
       for (int i = 0; i < findListPays.TListPays.Length; i++)
       {
          tPays = findListPays.TListPays[i];
          listPays.Add(tPays);
       }
       return listPays;
    }

    EDIT : Le nom de la méthode et celui de l'EventArgs sont surement faux, mais tu retrouveras les bons avec l'IntelliSense.
    Le nom des contrôles est à adapter à ton cas.

  5. #5
    Membre éclairé Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Par défaut
    merci pour ta reponse,

    j'ai compris,mais je sais pas ou est ce que je vais referencer la methode daraGrid1_ItemDataBound?

  6. #6
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Il te suffit de la référencer dans la propriété OnItemDataBound de ta datagrid (dans le mode design, c'est encore plus simple, tu double-clic sur l'évènement OnItemDataBound)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec une liste excel
    Par casavba dans le forum Excel
    Réponses: 3
    Dernier message: 14/09/2007, 10h23
  2. Probleme avec une liste
    Par Papri dans le forum ANT
    Réponses: 3
    Dernier message: 14/02/2007, 15h18
  3. Probleme avec une liste chainée
    Par apen2k2 dans le forum C
    Réponses: 7
    Dernier message: 14/12/2006, 16h31
  4. petit probleme avec une liste chainée
    Par kamouminator dans le forum C
    Réponses: 26
    Dernier message: 06/11/2006, 20h18
  5. [MySQL] Problème avec une liste déroulante
    Par leloup84 dans le forum SQL Procédural
    Réponses: 19
    Dernier message: 24/01/2006, 12h57

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