如何从GridView中的第二个表加载数据

时间:2013-09-06 19:18:40

标签: asp.net gridview linq-to-sql

我需要表:用户和私人消息。 用户具有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?

1 个答案:

答案 0 :(得分:1)

尝试使用join并为对象数据源选择用户名,并使用用户名显示它而不是用户ID。 请参阅此链接How to do a join in linq to sql with method syntax?