2010-06-29 18 views
0

Le DataSource (de mon répéteur) est un Dictionary<string, IList<User>>Asp.Net - ListView l'intérieur d'un répéteur

Je voudrais que le répéteur pour montrer toutes les clés de mon dictionnaire et je voudrais que mon ListView à utiliser toutes les données à l'intérieur la valeur de mon dictionnaire.

Il devrait générer une sorte de conteneur. Container a un nom (clé du dictionnaire) et a beaucoup de valeurs (Valeur du dictionnaire associé à la clé).

Pour l'instant, je me suis quelque chose comme ça:

<asp:Repeater ID="rpt" runat="server"> 
    <ItemTemplate> 
    <asp:ListView ID="lv" runat="server"> 
    <LayoutTemplate> 
    <table> 
     <tr> 
     <td colspan="2"> 
      GroupName (should be take from the key of the dictionary) 
     </td> 
     </tr> 
     <tr id="trConfigurationHeader"> 
     <th>Name</th> 
     <th>Description</th> 
     </tr> 
     <asp:PlaceHolder ID="itemPlaceHolder" runat="server" /> 
    </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
    <tr> 
     <td><%#Eval("Name")%></td> 
     <td><%#Eval("Description")%></td> 
    </tr> 
    </ItemTemplate> 
    </asp:ListView> 
    </ItemTemplate> 
</asp:Repeater> 

Comment puis-je lier mon ListView?

Répondre

0

Il est beaucoup plus facile d'afficher la clé dans le ItemTemplate de la commande de répéteur externe. Vous pouvez faire comme ci-dessous.Vous ne savez pas comment afficher la clé dans le conteneur interne (ListView)

<asp:Repeater ID="rpt" runat="server" > 
    <ItemTemplate>Group : 
    <asp:Label ID="dd" runat="server" Text='<%# Eval("Key") %>' ></asp:Label> 
    <asp:ListView ID="lv" runat="server" DataSource='<%# Eval("Value") %>' > 
    <LayoutTemplate> 
    <table> 

     </tr> 
     <tr id="trConfigurationHeader"> 
     <th>Name</th> 
     <th>Description</th> 
     </tr> 
     <asp:PlaceHolder ID="itemPlaceHolder" runat="server" /> 
    </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
    <tr> 
     <td><%#Eval("Name")%></td> 
     <td><%#Eval("Description")%></td> 
    </tr> 
    </ItemTemplate> 
    </asp:ListView> 
    </ItemTemplate>