2

我目前正在尝试查看目录,然后从列表框中预览 .jpeg。我的列表框填充了目录的内容并且只显示 Jpeg,但我想不出如何在图片框中获取 jpeg 预览。我在 Visual Studio 2010 上使用 asp .net 应用程序。

这是我的代码

    public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DirectoryInfo infoDir = new DirectoryInfo(@"G:\Test_Directory");            
        FileInfo[] infoFile = infoDir.GetFiles("*.jpeg");
        foreach( FileInfo file in infoFile )
        {
        lstDirectory.Items.Add(file.Name);
        }                    
    }

    protected void lstDirectory_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
}

我了解需要使用 Postback。如果有人能够提供帮助,那就太好了。

G:Drive中的文件是jpeg,在列表框中可以看到是:jpegimage.jpeg

谢谢。

4

1 回答 1

1

这样的事情怎么样?

我认为您可以主要在 Javascript 中执行此操作,并使用两个额外的 ASP.NET 页面。

  1. 首先,创建一个新网页。我们将其称为 A.aspx。该页面将在查询字符串中传递图像名称。这将非常简单:它只会从“G:\TestDirectory”中获取文件的内容并将其写入响应流。如果您以前没有这样做过,Stack Overflow 上有很多关于如何执行此操作的问题和答案。

  2. 然后,创建另一个网页。我们将其称为 B.aspx。这将有一个适当设置高度和宽度的图像控件。它还将从其查询字符串中获取图像名称。代码隐藏将构建一个 URL 用作图像控件上的 ImageSource 属性。该 URL 将是 A.aspx 的 URL,并将(URL 编码的)图像名称作为参数附加。

  3. 在您的 ASP.NET 页面上,将一个事件处理程序连接到您的列表框。当列表框上的选定索引发生变化时,在客户端,基于指向 B.aspx 的 URL 构建一个 URL,并将列表框中的图像名称作为参数附加。然后打开一个窗口,使用您刚刚构建的 URL,指向 B 并传递所需的文件名。

所以:当列表框选择的索引改变时(或者当你双击,或者你选择的任何事件),javascript 将打开一个带有页面 B.aspx 的窗口。页面 B 将有一个图像控件,设置为 A.aspx 的 URL。A.aspx 会将图像内容流式传输到图像控件,该控件将出现在您的新窗口中。

于 2012-10-30T17:41:36.183 回答