显示基于文件夹的图像列表

时间:2011-12-26 22:33:36

标签: c# asp.net

我很生气,正在寻求帮助。我已将一些图像文件加载到我的Web服务器上的文件夹中(因此,上传它们)。我现在想要简单地显示它们,一个在另一个下面作为aspx页面。所以,我想遍历文件夹中的所有图像文件,并在页面上显示它们。

最简单的方法是一个表,然后为每个文件添加一个tr / td。

有人可以提供建议吗?这会是最好的吗?我的cs文件中的一个事件,它读取文件夹,创建并填充它?

这纯粹是为了测试页面,而不是用于制作。

2 个答案:

答案 0 :(得分:4)

ASPX:

<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" CellPadding="5">
            <ItemTemplate>
            <asp:Image Width="100" ID="Image1" ImageUrl='<%# Bind("Name", "~/images/{0}") %>' runat="server" />
                <br />
                <asp:HyperLink ID="HyperLink1" Text='<%# Bind("Name") %>' NavigateUrl='<%# Bind("Name", "~/images/{0}") %>' runat="server"/>
            </ItemTemplate>
                <ItemStyle BorderColor="Silver" BorderStyle="Dotted" BorderWidth="1px" HorizontalAlign="Center"
                    VerticalAlign="Bottom" />
</asp:DataList>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
    {
        ListImages();
    }

    private void ListImages()
    {
        DirectoryInfo dir = new DirectoryInfo(MapPath("~/images"));
        FileInfo[] file = dir.GetFiles();
        ArrayList list = new ArrayList();
        foreach (FileInfo file2 in file)
        {
            if (file2.Extension == ".jpg" || file2.Extension == ".jpeg" || file2.Extension == ".gif")
            {
                list.Add(file2);
            }
        }
        DataList1.DataSource = list;
        DataList1.DataBind();
    }

添加您需要的任何扩展程序!

Source

<%@ Page Language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    private string url;
    protected void Page_Load(object sender, EventArgs e)
    {
        url = PictureManager.MembersImagesPath + tuMember.PhotoBig;
        Page.DataBind();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Image ID="Image1" runat="server" Height="210px" Width="252px" ImageUrl="<%#url%>" />
    </div>
    </form>
</body>
</html>

希望这有帮助!

答案 1 :(得分:2)

对于直接的HTML方法,您可以使用:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            const string SUBDIR = "images";

            foreach (string fileName in System.IO.Directory.GetFiles(Server.MapPath(SUBDIR)))
            {
                var oRow = new HtmlTableRow();
                var oCell = new HtmlTableCell();

                var oHREF = new HtmlAnchor();
                string actualFileName = System.IO.Path.GetFileName(fileName);
                oHREF.HRef = Request.ApplicationPath + "//" + SUBDIR + "//" + actualFileName;
                oHREF.InnerText = actualFileName;

                oCell.Controls.Add(oHREF);

                oRow.Cells.Add(oCell);

                tblImages.Rows.Add(oRow);
            }
        }
    }