我目前正在尝试查看目录,然后从列表框中预览.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
感谢。
答案 0 :(得分:1)
这样的事情怎么样?
我认为你可以在Javascript中实现这一点,还有两个额外的ASP.NET页面。
首先,创建一个新网页。我们称之为A.aspx。此页面将在查询字符串中传递图像名称。它将非常简单:它只是从“G:\ TestDirectory”获取文件的内容并将其写入Response流。如果您以前没有这样做,Stack Overflow上有很多关于如何执行此操作的问题和答案。
然后,创建另一个网页。我们称之为B.aspx。这将具有适当设置高度和宽度的图像控件。它还将从其查询字符串中获取图像名称。代码隐藏将构建一个URL,用作图像控件上的ImageSource属性。该URL将是A.aspx的URL,并附有(URL编码的)图像名称作为参数。
在ASP.NET页面上,将事件处理程序连接到列表框。当列表框上的选定索引发生更改时,在客户端上,根据B.aspx的URL构建URL,并将列表框中的图像名称作为参数附加。然后使用刚刚构建的URL打开一个窗口,指向B并传递所需的文件名。
所以:当列表框选中索引更改时(或双击时,或者你选择的任何事件),javascript将打开一个页面为B.aspx的窗口。页面B将具有图像控件,设置为A.aspx的URL。 A.aspx会将图像内容流式传输到图像控件,该控件将显示在新窗口中。