2010-07-12 2 views
9

Wie binde ich eine Liste an einen in ASP.NET 3,5Binden eine Liste <string> zu einem Listview in 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> 

Ich bin nicht sicher, was in dem Eval Teil verwenden Sie. Da dies eine generische Liste von Zeichenfolgen ist, gibt es keinen Spaltennamen.

Vielen Dank im Voraus.

Antwort

17

Verwenden Sie nicht Eval. Binden Sie es direkt:

<%# Container.DataItem %> 
+0

ich bereits verwenden können, versuchte dies .. funktionierte nicht :( – Sash

+0

komisch, es funktioniert in meinem Code. Sind Sie sicher, dass die Zeichenfolgen in der Liste nicht leer sind? – onof

+2

Dank onof, Sie speicherten meinen Tag! – Christian

2

Alles, was Sie tun müssen, ist ein anonymes Objekt zu erstellen und es an die Datasource-Eigenschaft des Listview.

Also, wenn Sie eine Liste oder ein Array von Strings haben, gehen Sie wie folgt vor:

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

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

Auf diese Weise Sie <%# Eval("Name") %> im vorderen Ende und binden an eine „Eigenschaft“

Verwandte Themen