2012-07-25 5 views
7

Jak powiązać prostą listę ciągów z repeaterami?Lista powiązań (ciągów) na repeaterach

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 

HTML jest po prostu:

 <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> 

Wartość z Container.DataItem jest zawsze pusty.

Wszelkie pomysły?

Odpowiedz

5

Zmień <SeparatorTemplate> na <ItemTemplate> i powinno działać!

SeparatorTemplate nie ma DataItem. Separator znajduje się pomiędzy dwoma pozycjami, zawsze są separatory n-1, więc jeśli zadziałałaby taśma danych, zawsze pozostawia ostatni element nieużywany.

+0

Dzięki - głupia literówka utrzymywała mnie w kółko przez ostatnie pół godziny! –

+0

Ciekawe, że nie można powiązać danych w szablonie separatora - chude coś nowego każdego dnia! –

+0

Istnieje tylko separator między dwoma przedmiotami, więc do którego elementu danych powinien on się podłączyć? ten przed separatorem, po nim lub po prostu nic (== null)? – Willem