1

我正在尝试在 ASP.NET./c# 中实现一个图片库

我在我的页面上显示 6 个缩略图。为了显示这一点,我决定对要显示的每个缩略图使用 ListView 和 ItemTemplate,其中包含一个 ImageButton 控件。我有几个问题:

  1. 我是否选择了正确的控件?(有 DataList、repeater 等选项)
  2. 我正在从具有图像作为 varbinary 类型字段的 sql server 2008 数据库中读取数据。如果我想将此二进制数据显示为缩略图中的图像,那么我应该怎么做呢?
  3. 最终,我希望能够在单击缩略图时显示大图像。如何复制被点击的缩略图的 URL?
  4. 有人有我可以用作指南的参考/演示/示例吗?

请记住,图像是 sql server 中的“二进制”数据,而不是文件系统上的文件。

我可以编写 sql 逻辑来在我的 sqldatareader 中选择正确的图像,或者可以改用数据集。我想继续我的 asp.net 控件及其代码,我遇到了这些初始设计问题,例如要使用哪些控件、如何动态添加等。

4

1 回答 1

0
  1. 您也可以使用 Repeater,但 ListView 从布局角度来看更灵活(更不用说分页支持)。但是,用于显示缩略图的 ImageButton 不是一个好的选择,我建议使用嵌入在超链接(或 achor 标签)中的图像控件(或 img 标签)。

  2. 您必须将图像数据从数据库保存到文件系统,然后将它们作为 URL 提供。或者,您可以编写一个 http 处理程序 (aspx/ashx),它将从数据库中流式传输图像数据,并且您将使用处理程序路径作为图像的 URL。在任何一种方法中,您都应该使用缓存标头以获得更好的性能。从所有考虑的方面来看,我倾向于采用第一种方法,因为它很简单。

  3. 通常,您使用标记,例如

     <a href="actual image URL" target="_blank" class="aLink">
       <img src="thumbnail URL" alt="Click to see image" />
     </a>
    

    所以锚标记具有实际图像 url 的路径。现在,您有很多 java 脚本库(统称为灯箱),可用于显示图像库 - 请参阅http://leandrovieira.com/projects/jquery/lightbox/http://colorpowered.com/colorbox / , http://fancybox.net/等。

  4. 上面的库将有从客户端生成画廊的演示/示例。您在服务器端所要做的就是生成示例中所示的标记 (html) - 使用转发器/列表视图和数据绑定语法非常简单。

于 2010-10-27T05:40:40.780 回答