您好,我正在尝试用两个阵列制作一个中继器,但我不知道该怎么做,也不知道是否可行。我想要完成的是获得这个 html:
<ul>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><a href="#"><img src="images/gallery/thumbs/2.jpg" data-large="<%# Container.DataItem %>" alt="image02" data-description="A plaintful story from a sistering vale" /></a>
</li>
...
</ItemTemplate>
</asp:Repeater>
</ul>
li 标签必须动态生成。更具体地说,我希望 imgs src 从第二个列表中获取元素,大数据从第一个列表中获取元素,数据描述从元素中获取文件名第一或第二。并为每次迭代生成 li 标签。这是背后的代码:
string[] original = Directory.GetFiles(Server.MapPath(@"images\gallery\projects\original\"));
string[] thumbs = Directory.GetFiles(Server.MapPath(@"images\gallery\projects\thumbs\"));
List<string> originalL = new List<string>();
foreach (string s in original)
{
originalL.Add("images/gallery/projects/original/" + Path.GetFileName(s));
}
Repeater1.DataSource = originalL;
Repeater1.DataBind();
在我使用控件制作标签之前,但使用此 html 我无法实现。我不知道如何将属性添加到内部 img 标签。如果有人可以帮助我制作控件或给我一些关于如何使转发器采用多个数组的指示,那将有很大帮助。如果能用控件制作就更好了,但任何解决方案都很好。提前致谢。
P.s 对不起,昨晚我真的很累。
最佳答案
以下代码已经过调试,完美运行!
代码隐藏:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<Image> ImageList = new List<Image>();
Image Image1 = new Image();
Image1.ID = 1;
Image1.Description = "From off a hill whose concave womb reworded";
Image Image2 = new Image();
Image2.ID = 2;
Image2.Description = "A plaintful story from a sistering vale";
ImageList.Add(Image1);
ImageList.Add(Image2);
Repeater1.DataSource = ImageList;
Repeater1.DataBind();
}
}
class Image
{
public int ID { get; set; }
public string Description { get; set; }
}
HTML:
<ul>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><a href="#"><img src="images/gallery/thumbs/<%# DataBinder.Eval(Container.DataItem, "ID") %>.jpg" data-description="<%# DataBinder.Eval(Container.DataItem, "Description") %>" /></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
我不确定您要从哪里检索描述,但您可以使用它从目录中获取 ID:
string[] images = Directory.GetFiles(Server.MapPath("~/Images/Gallery/Projects/Original"));
foreach (string s in images)
{
Image NewImage = new Image();
NewImage.ID = int.Parse(Path.GetFileNameWithoutExtension(s));
}
关于asp.net - 使用转发器创建无序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579271/