我正在编写一个允许用户输入关键字的小程序。然后程序搜索数据库表并查找与用户的搜索条件匹配的所有记录(使用LINQ)。
返回的结果记录将作为图像显示在屏幕上(非常类似于谷歌图像搜索页面)。然后,用户可以单击任何返回的图像,并将其带到包含该图像更多详细信息的页面。
我的问题是,用于显示用户初始搜索产生的图像的最佳控件是什么?这是一个ASP.Net程序。在gridview中显示图像会更好吗?还是列表视图?或者构建一个表并用图像按钮填充每个单元格?我之前从未这样做过,所以我基本上只是想知道如何呈现数据。
我不是在寻找代码,但我很乐意听到您的处理方式。
谢谢!
编辑:
我应该补充一点,所有图片都是相同的尺寸,我认为我会返回所有图片并让用户向下滚动页面。实际上,我认为不会有超过50张图像供用户选择。我设想在返回的每行结果上有五个图像,如下图所示:
答案 0 :(得分:3)
我一直都很喜欢使用Repeater来保持简单。您可以更好地控制自己的HTML编写方式。
由于您正在使用图像,并且我认为它们将具有不同的大小,因此我将使Itemtemplate包含一个带有锚点和内部img的div。将最大宽度拍到图像上并隐藏div上的溢出,这样图像就不会显得黯然失色。
只需设置从过滤器返回的数据源属性,调用数据绑定(),你就可以了。
这就是我如何应对这种情况。我也有兴趣听别人的比较。
答案 1 :(得分:2)
我会选择值得信赖的Repeater控件。这使您可以灵活地为任何集合渲染任何内容。
答案 2 :(得分:2)
我会创建一个构建动态table control的控件。您可以使用List<string>
来保存每张图片的网址。我将公开一个名为AddImage(string imageUrl)
的公共方法,该方法会将网址添加到List<string>
集合中。
一旦页面准备好呈现,我会将您拥有的图像数量除以5(这将为您提供所需的行数),然后只渲染表格。此外,在渲染之前,您可以使用LINQ在渲染之前获取数据(例如,对其进行排序)