c# - 如何在 ASP.NET 网站上显示硬盘文件夹中的图像列表?

标签 c# html asp.net image listview

我正在尝试制作一个简单的图片库网站。使用 ASP.NET 和 C#。 现在我没有设置服务器,但我只是在使用 Visual Studio 在您创建网站项目并运行它时启动的开发服务器。

我的硬盘驱动器上有一个文件夹,其中包含数量未知的图像。我想编写一段代码来遍历每张图片并将它们添加到默认网页。我试过这段代码,但它不起作用。我究竟做错了什么?我应该使用 ListView 控件还是 DataView 或类似的东西?我是否需要添加虚拟目录才能访问图像?如果是这样,我该如何在此测试服务器上执行此操作?

另外,如何设置这些图片的位置和对齐方式? 例如,如何使图片在网页上垂直排成一行并居中?

protected void Page_Load(object sender, EventArgs e)
{
    string[] filesindirectory = Directory.GetFiles(@"C:\Users\Jordan\Desktop\Web Images");
    int i = 1;
    foreach (string s in filesindirectory)
    {
        Image img = new Image();
        img.ID = "image" + i.ToString();
        img.ImageUrl = s;
        img.Visible = true;
        Page.Controls.Add(img);
        i++;

    }

}

最佳答案

首先你需要把你想要展示的图片放在web树下。假设您已经完成了这些并且它们位于名为 Images 的文件夹中。然后,您可以使用 Repeater 控件通过数据绑定(bind)来显示它们,如下所示:

像这样的……

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

然后在你后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Images"));
    List<String> images = new List<string>(filesindirectory.Count());

    foreach (string item in filesindirectory)
    {
        images.Add(String.Format("~/Images/{0}", System.IO.Path.GetFileName(item)));
    }

    RepeaterImages.DataSource = images;
    RepeaterImages.DataBind();
}

这基本上创建了一个图像数组,其中包含目录中的完整路径。 然后它创建一个包含图像虚拟路径的字符串列表。 然后将该列表绑定(bind)到转发器,转发器显示其模板中的每个项目,这是一个使用路径作为 ImageUrl 的图像控件。它很快就变脏了,但很有效,应该是一个很好的起点。

关于c# - 如何在 ASP.NET 网站上显示硬盘文件夹中的图像列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2629723/

相关文章:

c# - 空的 ASP.NET Core (.NET 5.0) 项目对针对其执行的每个请求持续使用更多 RAM

c# - 将 IEnumerable<dynamic> 转换为 JsonArray

javascript - 向输入字段添加自定义验证

html - Bigcommerce 购物车页面和结帐页面忽略主题字体样式

javascript - 仅当值大于 1 时显示 div Jquery

c# - 是否有比 .Any() 更快的方法来检查该条件?

c# - 在代码隐藏中添加网格

c# - 数据网格中的样式禁用组件

asp.net - Facebook 图形 API 超时

c# - 如何处理来自 Excel 文件的日期格式并使用 C# 将其转换为 MM/DD/YYYY?