【发布时间】:2011-04-04 14:41:13
【问题描述】:
我有一个 EntityDataSource 我已映射到实体 Resident,其中包括两个导航属性(Building1、Room1)。我已将 GridView 设置为使用此 EntityDataSource 并将 EntityDataSource Include 属性设置为 Building1、Room1,以便它包含这些导航属性并将这些列添加到 GridView。当我运行应用程序而不是显示关联的导航属性时,它会显示:webHousingAdmin.Building 我怎样才能让它显示实际值? GridView 的代码如下所示:
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lbl1" runat="server" Text='<%# Bind("Building1") %>' />
</ItemTemplate>
</asp:TemplateField>
我已经通过使用以下代码来显示实际值:
<asp:TemplateField HeaderText="Building">
<ItemTemplate>
<asp:Label ID="lblBuilding" Text='<%# Bind("Building1.building_name") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
但是有没有更简单的方法来做到这一点?这仅显示文本,不允许我对其进行编辑...如果我可以将其作为理想的边界字段。
【问题讨论】:
-
您似乎试图将属性 Building1、Room1 等直接绑定到 GridView 中的列。因为这些是类而不是简单的标量属性
.ToString()被调用,它只返回类名(如果你没有覆盖它)。但这只是一种猜测,您需要展示代码才能获得有根据的答案。
标签: asp.net entity-framework entity-framework-4 entitydatasource