生成图像列表的最佳方法

时间:2010-10-26 15:13:38

标签: c# asp.net-4.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 个答案:

答案 0 :(得分: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>

在简单的一维数组之外组织数据将证明在维护和调试体系结构方面更有用。您还可以创建要在整个开发过程中使用的业务对象,因此您的代码更有用,并且如果需要更新帮助对象,则需要花费更少的时间来完成逻辑的相同或变体。

答案 1 :(得分: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") %>' />
.
.
.
.

让我知道是否有任何令人困惑的事情......