2011-07-21 9 views
2

ListView question de contrôle Web:ListView contrôle Asp.Net - Affectation des chaînes aux colonnes ListView

J'ai développé une application Web de service de rapport à l'aide Asp.Net 3.5 et ReportingService2010.asmx. Je récupérai les ItemHistorySnapshots avec le code suivant:

ItemHistorySnapshot[] itemSnapshots = null; 
itemSnapshots = rs.ListItemHistory(strChildNode); 

foreach(ItemHistorySnapshot snapshot in itemSnapshots) { 
    listview.add (snapshot.HistoryID.Tostring()); 
    listview.add (snapshot.Size.Tostring()); 
    listview.add(snapshot.DateTime.Tostring()); 
} 

Je veux créer un ListView avec 3 colonnes HistoryID, Taille, DateTime et que vous souhaitez affecter les valeurs de chaîne en boucle foreach.

Veuillez me faire savoir comment affecter les valeurs de chaîne à ListView. Je veux aussi connaître le code de contrôle de la source pour listview. Merci beaucoup.

Répondre

0

Vous pouvez utiliser un répéteur et lier les données, comme ceci:

code derrière:

ItemHistorySnapshot[] itemSnapshots = null; 
itemSnapshots = rs.ListItemHistory(strChildNode); 

rpt.DataSource = itemSnapshots.Select(s => new 
{ 
    HistoryID = s.HistoryID.ToString(), 
    Size = s.Size.ToString(), 
    DateTime = s.DateTime.ToString(), 
}); 
rpt.DataBind(); 

Aspx Page:

<asp:Repeater id="rpt" runat="server"> 

    <HeaderTemplate> 
    <table border="1" width="100%"> 
     <tr> 
      <th>HistoryID</th> 
      <th>Size</th> 
      <th>DateTime</th> 
     </tr> 
    </HeaderTemplate> 

    <ItemTemplate> 
    <tr> 
     <td><%# Eval("HistoryID") %></td> 
     <td><%# Eval("Size") %></td> 
     <td><%# Eval("DateTime") %></td> 
    </tr> 
    </ItemTemplate> 

    <FooterTemplate> 
    </table> 
    </FooterTemplate> 

</asp:Repeater>