图片预览来自点击事件c#asp .net

时间:2012-10-30 16:22:58

标签: c# asp.net listbox image

我目前正在尝试查看目录,然后从列表框中预览.jpeg。我有列表框填充目录的内容,只显示Jpegs,但我想不出怎么做才能在图片框中获取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

感谢。

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

我认为你可以在Javascript中实现这一点,还有两个额外的ASP.NET页面。

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

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

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

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