ASP.net ListView与组

时间:2012-06-13 19:01:15

标签: c# asp.net listview

我似乎无法找到一个好的答案。我正在尝试设置一个网页来从数据库中获取数据并显示如下内容:

USERNAME1
   image1.jpg
   imagename

image2.jpg
   imagename2

USERNAME2
   image3.jpg
   imagename3

USERNAME3
   image4.jpg
   imagename4

image5.jpg
   imagename5

image6.jpg
   imagename6

有一个用户名,使用该用户名有一个或多个图像和图像名称。并非所有用户名都具有相同数量的图像。

我的问题是,最好的方法是什么?我可以使用带嵌套转发器的转发器控件来实现这一点。它很乱,但很有效。

从我读过的内容来看,ListView应该可以做同样的事情,但更清洁。我对ListView的问题是我必须设置GroupItemCount,它不像我需要的那样动态。我想我可以嵌套另一个ListView,但事实证明它与使用转发器的代码一样多。

这些方法中的一种(转发器或列表视图)是否优先于另一种。或者有没有更好的方法来做到这一点,我没想到?我不认为我想做的事情是不同寻常的,所以我认为会有更快的方式。对我来说,在使用for循环的经典asp中执行此操作似乎要容易得多。

提前感谢任何输入。

1 个答案:

答案 0 :(得分:0)

当实例化ItemTemplate的特定数量(GroupItemCount)时,将实例化GroupTemplate。为集合中的每个对象调用ItemTemplate,您首先拥有一组用户。即使您可以在ItemDataBound事件期间更改GroupItemCount,这也将反映如何创建下一组用户。到目前为止,没有关于图像的内容,所以我可以说你不能使用ListView来完成这样的任务。

在主Repeater(或ListView,如果你想)的ItemTemplate中使用转发器是最好的选择,也很常见,所以你不必担心这个混乱,另一个开发人员很容易看到你的意图。