2010-07-12 2 views
9

Comment puis-je lier une liste à un dans ASP.NET 3,5Binding une liste <string> à un Listview dans asp.net 3.5

<asp:ListView ID="lvDiagnosisCodes" runat="server"> 
      <LayoutTemplate> 
       <ul> 
        <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> 
       </ul> 
      </LayoutTemplate> 
      <ItemTemplate> 
       <li> 
        <%# Eval("Name") %> 
       </li> 
      </ItemTemplate> 

     </asp:ListView> 

Je ne suis pas trop sûr qu'utilisez dans la partie Eval. Comme il s'agit d'une liste de chaînes générique, il n'y a pas de nom de colonne.

Merci d'avance.

Répondre

17

Ne pas utiliser Eval. Liez directement:

<%# Container.DataItem %> 
+0

je l'ai déjà essayé ceci .. n'a pas fonctionné :( – Sash

+0

bizarre, cela fonctionne dans mon code Êtes-vous sûr que les chaînes dans la liste ne sont pas vides? – onof

+2

merci de, vous avez sauvé ma journée! – Christian

2

Tout ce que vous devez faire est de créer un objet anonyme et le mettre à la propriété DataSource de votre Listview.

Donc, si vous avez une liste ou un tableau de chaînes, procédez comme suit:

Dim myListOfStuff() As String = Manager.FetchMyStuff() 

Me.lvDiagnosisCodes.DataSource = (From s In myListOfStuff Select New With {.Name = s}).ToArray 
Me.lvDiagnosisCodes.DataSource.DataBind() 

De cette façon, vous pouvez utiliser <%# Eval("Name") %> à l'extrémité avant et se lier à une « propriété »

Questions connexes