将列绑定到与gridview不同的实体源

时间:2011-07-11 22:51:14

标签: c# .net asp.net entity-framework gridview

我有一个绑定到Entity DataSource(权限)的gridview。其中一列列出了UserId,它是另一个表中的主键。如何使用用户实体数据源的相应名称替换UserId?

3 个答案:

答案 0 :(得分:1)

你可以尝试......

<asp:TemplateField HeaderText="User Name" >
 <ItemTemplate>
   <asp:Label ID="lblUser" runat="server" Text='<%# Eval("ParentEntityName.Name")%>'
 </ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:0)

您可以在您的用户实体源中查找Gridview的RowDataBound事件。

答案 2 :(得分:0)

将其分类..

<asp:TemplateField HeaderText="ApprovedBy" SortExpression="ApprovedBy" >
            <ItemTemplate>   
                <asp:Label ID="lblUser" runat="server"  Text='<%# GetApprover(Eval("ApprovedBy").ToString()) %>'/>
            </ItemTemplate>
</asp:TemplateField>

和代码背后:

protected string GetApprover(string ApproverId)
    {
        int approver = Convert.ToInt32(ApproverId);
        var approversList = (from a in EntUsers.Users
                             where a.UserId == approver
                            select a.Name).FirstOrDefault();

        return approversList;
    }