这是我的表
信息
人
这是我的Gridview来源
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Select" Text="Select"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RecipientID" SortExpression="Person.LastName">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Person.LastName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Subject" HeaderText="Subject"
SortExpression="Subject" />
<asp:BoundField DataField="Message1" HeaderText="Message"
SortExpression="Message1" />
<asp:BoundField DataField="Status" HeaderText="Status"
SortExpression="Status" />
<asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
<asp:TemplateField HeaderText="SenderID" SortExpression="Person.LastName">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Person.LastName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
这是结果
你能帮助我显示发件人的名字吗? :)提前谢谢你们!我正在使用实体数据源
更新
我以“用户卡罗”身份登录
发件人显示登录的用户而非消息表
中的真实发件人这是我的实体模型
答案 0 :(得分:1)
您已经拥有了所需的导航属性,但是他们的名字掩盖了他们的角色。您使用Message.Person
来获取发件人的姓名,同样可以使用Message.Person1
来获取收件人的姓名。
我会将属性Person
和Person1
分别重命名为Sender
和Recipient
。因此,它们匹配原始外键名SenderID
和RecipientID
。同样,您可以将Person.Messages
属性重命名为MessagesSent
和MessagesReceived
。
在模板中,您可以使用Sender.LastName
和Recipient.LastName
。
答案 1 :(得分:0)
使用此查询
select m.MessageID,m.ReceipientID,m.Subject,m.senderID,p.UserName,p.FirseName from Message m inner join Person p on m.SenderID= p.ID