我有一个GridView DataBind,其实体ClassA的属性工作正常。 我能够直接绑定ASPX文件中的属性。 ClassA.Id ClassA.Name 等
但ClassA还具有相关ClassB的导航属性。我希望在同一个GridView中显示相关的classB的属性。
我尝试在GridView中绑定以下内容,但即使我能够在调试模式下正确评估以下值,它也不起作用(实体在需要时执行延迟加载)。 ClassA.classB.Name
我该怎么办?
答案 0 :(得分:1)
您可以通过带有eval函数的模板列实现目标,如下所示;
<asp:TemplateField HeaderText="Name" SortExpression="Name">
<ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Eval("ClassA.ClassB.Name") %>'></asp:TextBox>
</EditItemTemplate>
<asp:Label ID="Label1" runat="server"
Text='<%# Eval("ClassA.ClassB.Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
这种方法的缺点是使用后期绑定eval方法禁用双向数据绑定功能。