使用EntityDataSource在GridView上显示导航属性?
我有一个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>
但是有更简单的方法吗?这只显示文本,不允许我编辑它...如果我可以做一个理想的边界。
没有找到相关结果
已邀请:
2 个回复
际恃啸称桅
类的标量属性绑定到
...
......或者你可以覆盖班级的
......
如果将属性绑定到作为类的网格,绑定引擎将调用
- 如果不覆盖
,则仅返回完整的类名(命名空间点类名)。这就解释了为什么你只在你的例子中看到
。 编辑 与此问题并不真正相关:但是如果您尝试将导航属性与
(而不仅仅是
)绑定以用于数据源和网格之间的双向通信,则可能会遇到问题。可能它不会起作用。看到这个相关的问题和答案: 一个带有EntityDataSource的ASP.NET GridView中的两个相关数据库表的列
弦砂牧扁
请注意,如果使用向导创建实体模型,则默认情况下,ConnectionString名称与DefaultContainerName相同。在支持类中添加用于更新网格行的事件处理程序(OnRowUpdating):