Linq在gridview中加入了表格

时间:2012-10-15 10:09:33

标签: linq-to-sql gridview

var result = from p in dc.People
             join d in dc.Departments
             on p.fk_dep_id equals d.pk_dep_id
             select p;

return result.ToList();

上面的linq查询将选择所有人员,以及他们被分配到的部门的全名。此结果包含对象“Department”中的Department数据,我可以在调试时看到它。

但是,将此结果添加到gridview时,联接的数据会触发错误:

"A field or property with the name "Department.name" was not found on the selected data source.

我尝试在Gridview中执行以下操作:

<asp:BoudField DataField="Department.Name" HeaderText="Department" SortExpression="Department.Name" />

有关如何使用linq2sql数据在Gridview中显示此类“已加入”列的任何想法?

1 个答案:

答案 0 :(得分:0)

DataField应该是数据源中对象的属性名称。你不能使用那样的复杂表达式。为此,您需要TemplateField

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label runat="server" 
             Text="<%# (Eval("Department") as Department).Name %>" />
    </ItemTemplate>
</asp:TemplateField>