2016-08-27 3 views
0

Ich benutze Listview, um meine Buchdaten zu rendern. Bücher können eine Liste von Bildern enthalten. Ich möchte die Liste der Bilder dynamisch rendern.Renderliste von Bildern dynamisch

<asp:ListView ID="BookListView" runat="server" OnSelectedIndexChanged="ListView1_SelectedIndexChanged"> 
    <LayoutTemplate> 
     <div id="groupPlaceholder" runat="server"> 
     </div> 
    </LayoutTemplate> 
    <GroupTemplate> 
     <div> 
      <div id="itemPlaceholder" runat="server"></div> 
     </div> 
    </GroupTemplate> 
    <ItemTemplate> 
     <div> 
      <div id="BookTemplate" style="float: left"> 
       <b>BookID:</b> 
       <asp:Label ID="BookID" runat="server" Text='<%# Eval("bookID") %>' /><br /> 
       <b>Name:</b> 
       <asp:Label ID="lblBookName" runat="server" Text='<%# Eval("Name") %>' /><br /> 
       <b>Price:</b> 
       <asp:Label ID="BookPrice" runat="server" Text='<%# Eval("price") %>' /> 
      </div> 
      <div> 
       **<asp:Image ID="Image" ImageUrl='<%# Eval("Images") %>'** runat="server" Height="100" 
        Width="100" /> 
      </div> 
     </div> 
    </ItemTemplate> 
</asp:ListView> 

-

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     booklist = ds.GetBooks(); 
     BookListView.DataSource = booklist; 
     BookListView.DataBind(); 
    }  
} 

public class Book 
{ 
    public Book() 
    { 
     Images = new List<string>(); 
    } 
    public int BookId { get; set; } 
    public string Name { get; set; } 
    public int Price { get; set; } 
    public string Author { get; set; } 
    public string Edition { get; set; } 
    public int? Pages { get; set; } 
    public List<string> Images { get; set; } 
} 
+0

Dynamisch bedeutet, ich denke, Sie möchten, dass es aus der DB angezeigt wird? Könnten Sie genauer sein? –

Antwort

0

Es ist wie Bilder sieht eine Liste von Strings den Pfad/URL enthält, in dem die Bilder gespeichert werden? Wenn das der Fall ist, können Sie versuchen, so etwas wie:

private void loadImageThumbnails(List<string> Images,string parentControlName) 
    { 
     int x = 0; 
     int y = 0; 
     foreach(string imagePath in Images) 
     { 
      PictureBox p = new PictureBox(); 
      p.ImageLocation = imagePath; 
      p.Top = y; 
      p.Left = x; 
      p.Width = 100; 
      p.Height = 100; 
      p.Name = System.IO.Path.GetFileName(imagePath); 
      p.Load(); 
      Control c = Controls.Find(parentControlName, true)[0]; 
      c.Controls.Add(p); 
      //move left to right with 5 colums 
      x += p.Width + 10; 
      if (x >= 550) 
      { 
       x = 0; 
       y += p.Height + 10; 
      } 
     } 
    } 

Spielen Sie mit, dass und wenn Sie eine bestimmte Frage oder ein Problem haben, zeigen uns den Code und Ihr Problem.

Verwandte Themen