使用ASP.Net Repeater中2个列表中的数据

时间:2012-11-08 17:10:04

标签: c# asp.net data-binding repeater

是否可以将两个列表绑定到Repeater(创建表),以使用两个列表中的数据?
我有一个包含动作的列表和一个包含用户的列表。我想显示一些有关Action的信息,以及发布Action的用户。我可以将有关操作的信息与有关用户的信息结合起来吗?

这是表格的草图,它应该是什么样子:

ID |时间|关于行动的信息|用户ID |全名|用户信息

Jopi

2 个答案:

答案 0 :(得分:2)

您需要做的是将数据合并到单个项中,然后将绑定到转发器,而不是绑定两个数据源并尝试让Repeater对其进行排序

至于如何做到这一点,取决于数据的结构。

如果两个列表的相同索引处的项目是“属于一起”的项目,那么您可以使用Zip

var query = actions.Zip(users, (a,b)=> new CombinedStructure(a,b));

您可以创建新的自定义类型来存储需要在每个显示的行中的数据,也可以使用匿名类型并手动分配每个字段。

如果索引不对应,那么您可能需要加入

var query = from action in actions
            join user in users
            on user.ID = action.UserID
            select ...

答案 1 :(得分:1)