【问题标题】:Using ASP.Net, what would be the best control to use in this situation?使用 ASP.Net,在这种情况下最好使用什么控件?
【发布时间】:2013-04-01 07:09:56
【问题描述】:

我正在编写一个让用户输入关键字的小程序。然后程序搜索数据库表并找到所有符合用户搜索条件的记录(使用 LINQ)。

返回的结果记录将以图像的形式显示在屏幕上(很像 Google 的图像搜索页面)。然后,用户将能够单击任何返回的图像并被带到一个页面,其中包含有关该图像的更多详细信息。

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

我不是在寻找代码,但我很想听听您是如何处理这个问题的。

谢谢!

编辑:

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

【问题讨论】:

  • 您可以考虑扩展您的问题,提供更多关于您需要实现什么、数据是什么以及最终布局的信息:这些图像有多少和有多大?大小相同(即所有都是 100x100 正方形)还是不同大小?你想一次显示全部,还是需要一些分页(前 50 张图像,接下来的 50 张图像等)?你需要像谷歌那样自动加载(这样你就不需要点击“显示更多图片”,当你向下滚动时,下一张图片会自动加载)?

标签: c# asp.net linq webforms


【解决方案1】:

我一直热衷于尽可能使用中继器来保持简单。您可以更好地控制为自己的 HTML 编写的内容。

由于您使用的是图像,并且我假设它们的大小不同,因此我会让 Itemtemplate 包含一个带有锚点的 div 和内部的 img。在图像上设置一个最大宽度并隐藏 div 上的溢出,这样图像就不会看起来皱巴巴的。

只需设置过滤器返回的数据源属性,调用 databind() 即可。

这就是我处理这种情况的方式。我也有兴趣听取其他人的意见进行比较。

【讨论】:

  • 看起来很简单!我还在 Youtube 上找到了一个视频,它完全显示了您在此处描述的内容。感谢您的帮助!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2015-05-20
      相关资源
      最近更新 更多