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

本文关键字:实体 gridview 绑定 | 更新日期: 2023-09-27 18:02:00

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

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

你可以试试…

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

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

整理一下…

<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;
    }