2010-10-26 27 views
0

我有一個列表,其中包含有關要顯示的圖像的信息。每個圖像有6個條目包含有關它的信息,並有20個圖像。總共6 x 20條目。生成圖像列表的最佳方法

listImg[0] = image_name 
listImg[1] = image_url 
listImg[2] = other_info 
listImg[3] = other_info 
listImg[4] = other_info 
listImg[5] = other_info 

現在我想做的是彼此相鄰,以顯示這些圖像,在一個水平線上,在每個圖像的底部的圖像的名稱(重疊,應該只用DIV做標籤和一些樣式)。問題是,我無法弄清楚生成這個圖像列表的最佳方式。

任何建議與代碼片段?

感謝 中號

回答

2

也許創建一個類來更好地組織你的圖像數據,然後輸出您的標記,例如,當從它讀

class MyImage 
{ 
    public string Name {get; set;} 
    public string Url {get; set;} 
    public List<string> OtherInfo {get; set;} 
} 

... 

public List<MyImage> MyImages = new List<MyImage>(); 

... 

var img = new MyImage {"Name","http://www.example.com"}); 
img.OtherInfo.Add("Info1"); 
img.OtherInfo.Add("Info2"); 
img.OtherInfo.Add("Info3"); 

string html = ""; 
foreach(var image in MyImages) 
{ 
    // Access image data and write it out. etc. 
    html+= String.Format("<div>{1}{2}</div>",image.Name, image.Url); 
    foreach(var info in image.OtherInfo) 
    { 
     html+= "<div>" + info + "</div"; 
    } 
} 

// Write out your code to a literal, placeholder, etc. 
MyLiteralControl.Text = html; 

你也可以通過實現對後端首先創建您的數據,然後只需通過列表循環在實際標記的網頁渲染之前寫出來的數據,例如

<html><head></head><body> 

    <div>My Images</div> 
    <% foreach(var image in MyImages) { %> 
     <div><%=image.Name%></div> <!-- format your markup here --> 
    <% } %> 
    </body> 

</html> 

在簡單的一維數組之外組織數據將證明在維護和調試您的體系結構方面更加有用。您還可以創建業務對象以用於整個開發過程,因此,如果您需要完成相同或變體的邏輯,那麼您的代碼將更加有用,並且您可以花更少的時間重寫幫助對象。

+0

我喜歡這個想法很多,更好的結構是我需要的,但是寫出最好的方法是什麼? – Mikael 2010-10-26 15:27:21

0

下面是一些粗糙的僞代碼,試圖解釋:

class ImageInfo 
{ 
    string image_name; 
    string image_url; 
    //leavign out other_info since you don't say you are going to use it 
} 

List<ImageInfo> myImages = new List<ImageInfo>(); 
//load list 

//Bind to listView 
lv_Images.DataSource = myImages; 
lv_Images.DataBind(); 

僞代碼爲您的ListView

<listView> 
    <itemTemplate> 
    <div> <asp:Label text='<%# Bind("image_name") %>' /><br/><img src='<%# Bind("image_url") %>' /> 
. 
. 
. 
. 

讓我知道,如果有什麼是混亂...