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 :

Liste d'objet et repeater.


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut Liste d'objet et repeater.
    Bonjour,
    je développe actuellement une une interface de gestion d'un annuaire de type AdLds.
    Un provider me permet de récupérer l'ensemble des applications présentes dans l'annuaire, sous forme de liste d'application (objet composé d'un nom, d'une description et d'une liste de roles associés à cette application).
    j'ai regardé quelques tutos sur l'utilisation des repeaters mais je n'ai pas trouvé comment utiliser correctement mon repeater une fois lié à ma liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AdLdsRoleProvider newRoleProvider = (AdLdsRoleProvider)Roles.Providers["AdLdsRoleProvider"];
     List<Application> allAppli = newRoleProvider.GetAllApplications();
     this.rpApplis.DataSource = allAppli;
     this.rpApplis.DataBind();
    Ce que je souhaite faire une fois ce binding effectué, c'est afficher pour chaque application son nom et une gridview avec ses groupes.
    Cependant, je n'arrive même pas à afficher le nom des applications dans mon repeater. je pensais utiliser quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DataBinder.Eval(Container.DataItem, "NomAppli")
    mais le container n'a aucune propriété...
    pourriez vous m'indiquer comment faire ou m'aiguiller vers de bons tutos?
    en outre, est il possible de mettre des gridviews dans le repeater?
    Merci d'avance pour vos informations

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    J'ai finalement trouvé comment faire. Poser le problème calmement pour vous l'expliquer m'a bien aidé
    Dans la page asp, au niveau du repeater, j'ai rajouté un label dont je définis le texte comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label ID="lblAppliName" runat="server" Text="<%# ((Total.RM.Annuaire.Providers.Application)Container.DataItem).Name  %>"></asp:Label>
    Je vais pouvoir vérifier s'il n'y a pas de souci avec les GridView et je cloture la discussion si tout se passe sans problème

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    Citation Envoyé par dcarroz Voir le message
    Bonjour,
    ...
    en outre, est il possible de mettre des gridviews dans le repeater?
    Merci d'avance pour vos informations
    Oui c'est largement possible.
    Tu rentre dans les contrôles dynamique dans ces cas la qui impose une gestion un peu plus spécial mais c'est possible.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    En effet, j'ai pu obtenir ce que je souhaitais, non sans difficulté...
    je laisse ici mon code au cas où quelqu'un rencontre les mêmes soucis.

    Tout d'abord dans le développement de la page aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     <asp:Repeater id="rpApplis" runat="server" onitemdatabound="rpApplis_ItemDataBound">    
                <ItemTemplate>
                    <table width="100%">
                   <tr>
                        <td style="font-weight:bold;">
                        <asp:Label ID="lblAppliName" runat="server" Text="<%# (('Namespace'.Application)Container.DataItem).Name  %>"></asp:Label>
                        <br />
                        </td> 
                   </tr>
    Cela permet de définir un titre à chaque entité présente dans le repeater.
    Code : 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
    19
    20
    21
    22
     
                   <tr>
                        <td>
                            <asp:GridView ID="gvRoles" runat="server" AutoGenerateColumns="False" style="background-color:#D4E0FF;">
                        <Columns>
                            <asp:BoundField DataField="Name"/>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:CheckBox ID="cbRole" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            </Columns>
                            </asp:GridView>
                        </td> 
                   </tr>
              </table>
         </ItemTemplate>
         <SeparatorTemplate>
              <br>
         </SeparatorTemplate>
     
    </asp:Repeater>
    Là, je définis une gridView. je ne veux pas récupérer tous les attributs pour chaque role (cf code behind) alors je choisis de générer moi même mes colonnes. vous pouvez également constater que je rajoute une colonne checkBox afin de sélectionner ou déselectionner des roles.

    Ensuite, dans le code behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            private void AffichageRepeater()
            {
     
                    AdLdsRoleProvider newRoleProvider = (AdLdsRoleProvider)Roles.Providers["AdLdsRoleProvider"];
                    List<Application> allAppli = newRoleProvider.GetAllApplications();
                    this.rpApplis.DataSource = allAppli;
                    this.rpApplis.DataBind();                
            }
    qui permet d'alimenter le repeater.

    Il faut ensuite alimenter les gridView pour chaque élément du repeater. pour cela, il faut tout dabord bien penser à mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onitemdatabound="rpApplis_ItemDataBound
    dans la déclaration du repeater et définir ensuite cette fonction dans le code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected void rpApplis_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))
                {
                    //string nomAppli = (DataRowView)(e.Item.DataItem).ToString();
     
                    GridView myGvRole = (GridView)e.Item.FindControl("gvRoles");
                    AdLdsRoleProvider newRoleProvider = (AdLdsRoleProvider)Roles.Providers["AdLdsRoleProvider"];
                    List<Group> appliRoles = newRoleProvider.GetRolesForApplication(((Application)e.Item.DataItem).Name);
                    myGvRole.DataSource = appliRoles;
                    myGvRole.DataBind();
                }
            }
    Voilà donc comment j'ai pu insérer des gridView dans un repeater.
    N'hésitez pas si vous avez des conseils ou des questions!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2008, 13h17
  2. Tri d'une liste d'objet CObList
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 13/07/2005, 13h50
  3. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 12h11
  4. [Kylix] Composant - Liste d'objet
    Par Metal3d dans le forum EDI
    Réponses: 1
    Dernier message: 13/12/2002, 22h17
  5. liste d'objets
    Par Pierrot dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2002, 09h56

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