2016-08-27 16 views
0

私はリストビューを使って本のデータをレンダリングしています。書籍には画像のリストがあるかもしれません。私は画像のリストを動的にレンダリングしたい。画像のリストを動的にレンダリングする

<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

動的には、DBから表示されることを意味しますか?より具体的になりますか? –

答えて

0

それは画像のように見える写真が保存されている場所へのパス/ URLを含む文字列のリストですか?それと

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

プレイ、あなたが特定の質問や問題がある場合は、私たちのコードとあなたの問題を示しています。その場合は、次のようなものを試してみてください。

関連する問題