我需要表:用户和私人消息。 用户具有UserID和用户名。 PrivateMessages具有coloumns PMID和Text和SenderID。 (当然它还有更多,但要解释这个问题,足够了)
现在我有一个DataSource和一个这样的方法:
public static List<UserPM> GetAllPMsAsSender(Guid userID)
{
using (RPGDataContext dc = new RPGDataContext())
{
return (from a in dc.UserPMs where a.Sender == userID && !a.IsDeletedSender orderby a.Timestamp select a).ToList();
}
}
并将其绑定到ObjectDataSource并绑定到网格视图。
网格视图现在看起来像这样:
<asp:ObjectDataSource ID="odsOutcome" runat="server"
SelectMethod="GetAllPMsAsSender" TypeName="DAL.PMDAL">
<SelectParameters>
<asp:CookieParameter CookieName="UserID" DbType="Guid" Name="userID" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="gridOut" runat="server" AutoGenerateColumns="False"
DataSourceID="odsOutcome">
<Columns>
<asp:BoundField DataField="PMID" HeaderText="PMID" SortExpression="PMID" />
<asp:BoundField DataField="Text" HeaderText="Text" SortExpression="Text"/>
<asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" />
</Columns>
</asp:GridView>
那么如何在此字段中获取用户名而不是UserID?
答案 0 :(得分:1)
尝试使用join并为对象数据源选择用户名,并使用用户名显示它而不是用户ID。 请参阅此链接How to do a join in linq to sql with method syntax?