2010-12-28 5 views
1

J'ai des problèmes pour obtenir le listview correct d'un site ASP. Mes données est comme suit:Listview itemTemplate dans ASP.NET

J'ai donc un dictionnaire qui contient une liste de statistiques:

Dictionary<string, IList<Stats>> 

Data example: Key    Value 
       Port1    List<Stats>: - int NumberOfSuspended 
              | - int NumberOfCompleted 
              |------ string messagetype 
       Port2    List<Stats>: -int numberOfSuspendes 
              | - int numberOfCompleted 
              |-----string messagetype 

La classe « stats » contient quelques variables (MessageType & numberofsuspended)

Je besoin de créer une liste de visualisation qui ressemble à ceci:

<table> 
<tr><td>Port1</td></tr> 
    <tr><td>Messagetype</td><td>numberofSuspended</td> 

<tr><td>Port2</td></tr> 
    <tr><td>Messagetype</td><td>numberofSuspended</td> 
    ....... 
</table> 

Donc, fondamentalement: foreach Liste dans le dictionnaire faire une rangée avec les stats propert s (et la clé du dictionnaire est titlerow)

résultat donc fin est la suivante:

|---------------------------------------------- 
| PORT 1 
|---------------------------------------------- 
| MessageType1: | 0/0 | 0/0 
|---------------------------------------------- 
| MessageType2: | 0/0 | 0/0 
|---------------------------------------------- 
|----------------------------------------------- 
| PORT 2 
|---------------------------------------------- 
|---------------------------------------------- 
| MessageType1: | 0/0 | 0/0 
|---------------------------------------------- 
| MessageType2: | 0/0 | 0/0 
|---------------------------------------------- 

Quelqu'un peut-il me aider ItemTemplate de ListView? Je pense que c'est un peu difficile parce que je me sers d'un dictionnaire? -je utiliser DataBinding (Listview.Datasource = Dictionnaire < ..>)

Merci

+0

Vous devez afficher le balisage ou le codeBEA qui est réellement responsable de la liaison. Une autre tentative consisterait à s'abonner à l'événement OnItemDataBound, à utiliser e.Row.FindControl ("") pour obtenir des références aux éléments asp.net de la ligne en cours et leur attribuer les valeurs – citronas

Répondre

0

N'a pas essayé cette théorie, mais laissez-moi savoir ce que vous pensez:

Pourriez-vous essayer d'ajouter un contrôle d'espace réservé, en boucle à travers chacune des clés et en appliquant l'en-tête dans la boucle, et en ajoutant également un répéteur avec les données de cette clé respective?

For each sKey as String in MyDictionary.Keys 
    plcMyHolder.Controls.Add(New LiteralControl("<h1>" & sKey & "</h1>")) 
    Dim rpt As New Repeater 
    rpt.DataSource = MyDictionary(sKey) 
    rpt.DataBind 
    plcMyHolder.Controls.Add(rpt) 
Next 
Questions connexes