我对.Net(Win Forms和WPF)有一些经验,但在ASP.Net中非常非常环保。 我被赋予了构建一个简单的,基于文件系统的图片浏览器的任务,我希望你的帮助指导我如何实现这一目标。图像应该存储在运行应用程序的Web服务器中,位于主应用程序目录下的“Images”文件夹中。
这是我到目前为止所拥有的:
我正在使用DataList,DataList的ItemTemplate包含1个img(用于实际的缩略图)和1个标签(用于图片的名称)。
在后面的代码中,我将目录和图像文件列表绑定到DataList,如下所示:
//Class property:
public List<FileSystemInfo> filesAndDirs;
//Page load:
if (filesAndDirs == null)
{
filesAndDirs = new List<FileSystemInfo>();
}
DirectoryInfo di = new DirectoryInfo(MapPath("Images"));
filesAndDirs.AddRange(di.GetDirectories());
filesAndDirs.AddRange(di.GetFiles("*.jpg"));
DataList1.DataSource = filesAndDirs;
DataList1.DataBind();
在aspx文件中,我有以下内容:
<asp:DataList ID="DataList1" runat="server" RepeatColumns="4" ...>
<ItemTemplate>
<img src='~/Images/<%#Eval("Name") %>' width="100" />
<asp:Label ID="Label3" Text='<%#Eval("Name") %>' runat="server" ></asp:Label>
</ItemTemplate>
</asp:DataList>
标签正确显示文件的名称,但到目前为止,图像没有显示任何内容。我做错了什么?
您将如何构建这样的图像浏览器?
如果您有图片浏览器的“入门套件”或可以分享的代码,我会非常感激!
感谢!!!
答案 0 :(得分:2)
将runat =“server”添加到您的img标记中。代字号“〜”仅适用于基于服务器的控件。当代码处于当前状态时,它将“〜/ Images / img.jpg”发送给客户端。使其成为服务器控件将使其解析图像路径。
我建议将此项目作为入门者进行检查 http://www.jigar.net/applications/album/index.aspx