1
我有两个实体类:Order
和OrderItem
。 Order
包含类型数据绑定异常与实体导航属性
System.Data.Objects.DataClasses.EntityCollection<OrderItem>
在aspx页的导航属性OrderItemSet
绑定到此EntityDataSource一个FormView:
<asp:EntityDataSource ID="EntityDataSourceOrder" runat="server"
ConnectionString="name=EntitiesContext"
DefaultContainerName="EntitiesContext"
EntitySetName="Order"
Include="OrderItemSet"
// stuff to define a query
</asp:EntityDataSource>
而在FormView绑定到数据源,这的FormView的ItemTemplate中包含一个ListView我尝试绑定到OrderItemSet。它看起来是这样的:
<asp:FormView ID="FormViewOrder" runat="server" DataKeyNames="OrderID"
DataSourceID="EntityDataSourceOrder" AllowPaging="True" >
<ItemTemplate>
...
<asp:ListView ID="ListViewOrderItems" runat="server"
DataSource='<%# Eval("OrderItemSet")%>' >
...
</asp:ListView>
</ItemTemplate>
</asp:FormView>
当我运行该应用程序我得到一个异常指着标记线DataSource='<%# Eval("OrderItemSet")%>'
,告诉我:
数据绑定:System.Web.UI.WebControls.EntityDataSourceWrapper不包含名称为'OrderItemSet'的属性
这里有什么问题?
(我已经做了这不是列表,但单一的对象引用其他导航性能是相同的,那工作。)
感谢您的帮助!
你好西安,谢谢你的回复!其实我的数据源绑定到一个FormView。而我所说的ListView是这个FormView的ItemTemplate的一部分。所以我不想将ListView绑定到订单的“完整”数据源,而只是绑定到订单的特定导航属性(OrderItems列表)。我试图在上面的问题中澄清这一点。 – Slauma 2010-03-11 15:19:25
也许FormView的数据绑定发生得太晚了。您可以尝试连接到FormView的OnDataBound事件,然后以编程方式设置ListViewOrderItems的DataSource。 – codemonkeh 2010-03-14 21:49:53
谢谢西安!这就是我现在正在做的事情,它的工作原理。也许你是对的,数据绑定已经太迟了,但是这个异常的错误信息是相当混乱的。我现在要关闭这个问题。 – Slauma 2010-03-18 20:31:52