使用ASP.Net,在这种情况下使用哪种最佳控件?

时间:2013-04-09 17:49:01

标签: c# asp.net linq webforms

我正在编写一个允许用户输入关键字的小程序。然后程序搜索数据库表并查找与用户的搜索条件匹配的所有记录(使用LINQ)。

返回的结果记录将作为图像显示在屏幕上(非常类似于谷歌图像搜索页面)。然后,用户可以单击任何返回的图像,并将其带到包含该图像更多详细信息的页面。

我的问题是,用于显示用户初始搜索产生的图像的最佳控件是什么?这是一个ASP.Net程序。在gridview中显示图像会更好吗?还是列表视图?或者构建一个表并用图像按钮填充每个单元格?我之前从未这样做过,所以我基本上只是想知道如何呈现数据。

我不是在寻找代码,但我很乐意听到您的处理方式。

谢谢!

编辑:

我应该补充一点,所有图片都是相同的尺寸,我认为我会返回所有图片并让用户向下滚动页面。实际上,我认为不会有超过50张图像供用户选择。我设想在返回的每行结果上有五个图像,如下图所示: grid mockup

3 个答案:

答案 0 :(得分:3)

我一直都很喜欢使用Repeater来保持简单。您可以更好地控制自己的HTML编写方式。

由于您正在使用图像,并且我认为它们将具有不同的大小,因此我将使Itemtemplate包含一个带有锚点和内部img的div。将最大宽度拍到图像上并隐藏div上的溢出,这样图像就不会显得黯然失色。

只需设置从过滤器返回的数据源属性,调用数据绑定(),你就可以了。

这就是我如何应对这种情况。我也有兴趣听别人的比较。

答案 1 :(得分:2)

我会选择值得信赖的Repeater控件。这使您可以灵活地为任何集合渲染任何内容。

答案 2 :(得分:2)

我会创建一个构建动态table control的控件。您可以使用List<string>来保存每张图片的网址。我将公开一个名为AddImage(string imageUrl)的公共方法,该方法会将网址添加到List<string>集合中。

一旦页面准备好呈现,我会将您拥有的图像数量除以5(这将为您提供所需的行数),然后只渲染表格。此外,在渲染之前,您可以使用LINQ在渲染之前获取数据(例如,对其进行排序)