Domanda

Sto cercando di fare una griglia di miniature utilizzando un datalist. Ho una matrice dei imageURLs e voglio legarli nel codice dietro. Come potrei fare per farlo? Voglio DataList ad avere una dimensione di colonna massimo di 5 e aggiungere righe di miniature fino al completamento.

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

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

</asp:DataList>

codebehind:

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

Soluzione

Credo che questo lo farà per voi

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

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

</asp:DataList>

Codice dietro

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

Si potrebbe anche essere in grado di fare

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

Ma a volte i controlli server non piace blocchi di rendering in loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top