具有2个数据源的中继器
本文关键字:中继器 数据源 2个 具有 | 更新日期: 2023-09-27 18:25:10
我得到了两个数据库表,USER and MESSAGE
USER: UserID, FirstName, LastName
MESSAGE: MessageID, UserID, Content
我正在使用一个中继器来显示消息,它从MESSAGE表中检索数据,该表包含一个UserID,也显示了该表。我想显示firstname和lastname,而不是UserID,但我如何在中继器中做到这一点?我需要使用2个数据源吗?
MESSAGE表不包含FirstName和LastName,所以我根据MESSAGE表格中的UserID从USER表格中读取FirstName与LastName。
private List<Message> listMessages = Database.GetMessages();
repeaterMessages.DataSource = listMessages;
repeaterMessages.DataBind();
使用上面的代码,我可以在中继器中显示MessageID、UserID和Content,但不能显示FirstName和LastName。
我真的不知道我能做什么…
我想要这样的东西(在中继器内):
MessageID: 1
Mike Johnson
This is the content.
但我得到的是:
MessageID: 1
UserID: 43
This is the content.
消息类有MessageID
、UserID
和Content
作为成员。您需要选择与User
连接的Message
,并仅投影要显示的列。
例如,您可以定义一个名为DisplayableMessage
的类,例如它将具有成员,如MessageID
、UserName
和Content
。您可以为该类定义一个方法,将其命名为GetDisplayableMessage
,它将基于Message
和User
数据初始化DisplayableMessage列表。然后您可以将此方法与Repeater
的DataSource
相关联。