2012-07-25 68 views
7

Làm cách nào để liên kết một danh sách chuỗi đơn giản với bộ lặp?Danh sách liên kết (chuỗi) để lặp lại

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 đơn giản là:

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

giá trị từ Container.DataItem luôn trống.

Bất kỳ ý tưởng nào?

Trả lời

5

Thay đổi <SeparatorTemplate> thành <ItemTemplate> và nó sẽ hoạt động!

SeparatorTemplate không có DataItem. Dấu phân cách nằm giữa hai mục, luôn có dấu phân cách n-1, vì vậy nếu databinding đã làm việc nó sẽ luôn luôn để lại mục cuối cùng không sử dụng.

+0

Cảm ơn - lỗi đánh máy ngớ ngẩn đã có tôi trong vòng kết nối trong 1/2 giờ qua! –

+0

Điều thú vị là bạn không thể ràng buộc dữ liệu trong mẫu dấu phân cách - nạc một cái gì đó mới mỗi ngày! –

+0

Chỉ có một dấu phân cách giữa hai mục, vì vậy dữ liệu nào nó phải liên kết với? cái trước dấu phân cách, cái sau hay chỉ là gì (== null)? – Willem

Các vấn đề liên quan