2012-07-25 9 views
7

Wie kann ich eine einfache Liste von Zeichenfolgen an einen Repeater binden?Bind-Liste (von String) zu Repeater

Protected Sub Page_Load(sender As Object, e As System.EventArgs) 

    'create sample data: 
    Dim photos As New List(Of String) 
    photos.Add("large1.jpeg") 
    photos.Add("large2.jpeg") 
    photos.Add("large3.jpeg") 
    photos.Add("large4.jpeg") 
    photos.Add("large5.jpeg") 

    'bind data: 
    Repeater1.DataSource = photos 
    Repeater1.DataBind() 

End Sub 

Die HTML ist einfach:

 <asp:Repeater ID="Repeater1" runat="server" ClientIDMode="Predictable"> 
      <HeaderTemplate><ul></HeaderTemplate> 
      <FooterTemplate></ul></FooterTemplate> 
      <SeparatorTemplate> 
       <li> 
        <asp:Image ID="img_photo" runat="server" ImageUrl="<%# Container.DataItem %>" /></li> 
      </SeparatorTemplate> 
     </asp:Repeater> 

Der Wert von Container.DataItem immer leer ist.

Irgendwelche Ideen?

Antwort

5

Ändern <SeparatorTemplate> zu <ItemTemplate> und es sollte funktionieren!

Die SeparatorTemplate hat kein DataItem. Das Trennzeichen befindet sich zwischen zwei Elementen. Es gibt immer n-1 Trennzeichen. Wenn die Datenbindung funktioniert, wird das letzte Element immer nicht verwendet.

+0

Danke - dummer Typo hatte mich in den letzten 1/2 Stunde im Kreis! –

+0

Interessant, dass Sie keine Daten in der Trennvorlage binden können - lehnen Sie jeden Tag etwas Neues an! –

+0

Es gibt nur ein Trennzeichen zwischen zwei Elementen. An welches Datenelement soll es also gebunden werden? die eine vor dem Trennzeichen, die nach oder nur nichts (== null)? – Willem