2009-04-09 7 views
2

Ich versuche, ein Raster von Thumbnails mit einem Datenlogger zu machen. Ich habe eine Reihe von Bildurls und möchte sie im Code dahinter binden. Wie würde ich das machen? Ich möchte, dass der Datalist eine maximale Spaltengröße von 5 hat und Reihen von Miniaturansichten hinzufügen, bis diese abgeschlossen sind.Asp.Net DataList binden Array von ImageUrls

<asp:DataList ID="dlImages" runat="server" 
      RepeatColumns="5" 
      RepeatDirection="Horizontal" 
      RepeatLayout="Flow"> 

    <ItemTemplate> 
     <asp:Image ID="imgStore" runat="server" /> 
    </ItemTemplate> 

</asp:DataList> 

Code-Behind:

protected void BindImages(string[] imageurls) 
{ 
    for (int i = 0; i < imageurls.Length; i++) 
    { 
     . 
     . 
     . 
    } 
} 

Antwort

6

Ich denke, das es für Sie tun

<asp:DataList ID="dlImages" runat="server" 
     RepeatColumns="5" 
     RepeatDirection="Horizontal" 
     RepeatLayout="Flow"> 

<ItemTemplate> 
    <img src="<%# (string)Container.DataItem %>" /> 
</ItemTemplate> 

</asp:DataList> 

-Code hinter

protected void BindImages(string[] imageurls) 
{ 
    dlImages.DataSource = imageurls; 
    dlImages.DataBind(); 
} 

Sie auch in der Lage sein könnte, zu tun

<asp:Image runat="server" id="imgStore" 
    ImageUrl="<%# (string)Container.DataItem %>" /> 

Aber manchmal Server-Controls nicht wie Render-Blöcke in ihnen.

+0

Das funktioniert gut, wenn ich tatsächliche Bildurls verwende, aber wenn ich solche verwende, die ich zum Beispiel erstellt habe: ~/UserPages/Photo/GetThumbnail.aspx? Id = 7 ... Es funktioniert nicht. – user84786

+0

Gibt es einen Grund dafür? – user84786