使用Repeater显示文件夹中的所有图像

时间:2012-03-01 12:02:37

标签: asp.net repeater

如何使用中继器显示文件夹中的所有图像?这就是我的转发器现在的样子,多次显示一个图像。

 <asp:Repeater ID="FileRepeater" runat="server">
            <ItemTemplate>
                <li>
 <asp:HyperLink ID="HyperLink1" NavigateUrl="" ImageUrl="~/Content/Images/oneimage.jpg" runat="server"/>
 </li></ItemTemplate>
 </asp:Repeater>

在我的Page_Load后面的代码中,我调用GetImageNames来获取文件夹中所有图像的列表。

var images = Gallery.GetImageNames();        
    FileRepeater.DataSource = images;        
    FileRepeater.DataBind();

我是新来的,很困惑,请帮忙!

我仍然无法让它工作,这就是我的方法GetImageNames()看起来的样子。我希望我能以某种方式使用转发器的图像......

public static List<string> GetImageNames()
{
    string imgPath = PhysicalApplicationPath +"/Images/";
    List<string> images = new List<string>();
    DirectoryInfo directoryInfo = new DirectoryInfo(imgPath);


    FileInfo[] fileInfo = directoryInfo.GetFiles();

    for (int i = 0; i < fileInfo.Length; i++)
    {
        images.Add(fileInfo[i].Name);
    }
    return images;                                                                                                          

1 个答案:

答案 0 :(得分:3)

试试这个:

<ItemTemplate>            
<asp:Image ID="Image1" runat="server" ImageUrl="<%# Container.DataItem %>" />         
</ItemTemplate> 


string[] list = Directory.GetFiles(Server.MapPath("images"));
            var aList = from fileName in Directory.GetFiles(Server.MapPath("images")) select string.Format("/images/{0}", Path.GetFileName(fileName)); 
            Repeater1.DataSource = aList;
            Repeater1.DataBind();