Asp.net 该关系不是此DataView指向的表的父级
废话废话部分表示我数据绑定的额外字段。在子中继器中,我得到错误/异常Asp.net 该关系不是此DataView指向的表的父级,asp.net,data-binding,user-controls,repeater,Asp.net,Data Binding,User Controls,Repeater,废话废话部分表示我数据绑定的额外字段。在子中继器中,我得到错误/异常该关系不是此DataView指向的表的父级。 我做错了什么,当我检查数据集时,关系名“BusinessList_Staff”存在[关系由framework为我自动创建]。还有Container.Dataitem是一个datarowview,它在标记中也使用了“CreateChildView”方法。我所做的就是在后端页面加载中对父中继器进行数据绑定,如下所示 rptrCompany.DataSource=dtTemp.Tables
该关系不是此DataView指向的表的父级。
我做错了什么,当我检查数据集时,关系名“BusinessList_Staff”存在[关系由framework为我自动创建]。还有Container.Dataitem
是一个datarowview
,它在标记中也使用了“CreateChildView”方法。我所做的就是在后端页面加载中对父中继器进行数据绑定,如下所示
rptrCompany.DataSource=dtTemp.Tables[“Company”].DefaultView;
rptrCompany.DataBind();
请让我知道我做错了什么可能是因为员工不是公司的一部分吗?XML中唯一可能存在的关系是以公司为单位的隐式关系 如果您可以控制XML生成,则应该更改
中包含的
元素
很久没有以这种方式进行数据绑定了,如果这不是一个完整的解决方案,那么很抱歉。我认为问题在于您的数据集结构是扁平的。这种中继器结构需要有公司实体中的员工列表。xml应该如下所示:
<asp:Repeater runat="server" id="rptrCompany">
<HeaderTemplate>
Staff in company
</HeaderTemplate>
<ItemTemplate>
Company Details:
<%# Eval("CompanyName") %>
.. blahblahblah Staff Details
<asp:Repeater runat="server" id="rptrStaff" datasource='<%# ((DataRowView)Container.DataItem).CreateChildView("BusinessList_Staff") %>'>
<HeaderTemplate>
Staff List
</HeaderTemplate>
<ItemTemplate>
<%# Eval("FirstName") %>
..blah blah blah
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
我在您导出的xml中看不到任何关系。@Farzin您的意思是BusinessList\u Staff
我在标记中所指的关系?请尝试dataset read cml方法,然后重试。在这种情况下是否需要存在关系?我的意思是,商业清单、公司和员工是有关联的。这就是为什么我试着把员工作为关系人,你真是个天才。我按照你的建议做了,解决了这个问题。员工元素现在嵌套在公司内部。谢谢guvante建议我将员工元素作为公司的孩子,这解决了我的问题。尽管投票通过了,但还是感谢你提供的细节。
<asp:Repeater runat="server" id="rptrCompany">
<HeaderTemplate>
Staff in company
</HeaderTemplate>
<ItemTemplate>
Company Details:
<%# Eval("CompanyName") %>
.. blahblahblah Staff Details
<asp:Repeater runat="server" id="rptrStaff" datasource='<%# ((DataRowView)Container.DataItem).CreateChildView("BusinessList_Staff") %>'>
<HeaderTemplate>
Staff List
</HeaderTemplate>
<ItemTemplate>
<%# Eval("FirstName") %>
..blah blah blah
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
<BusinessList>
<Company>
<!--Other Properties-->
<Staffs>
<!--Staff List-->
<Staff>
</Staff>
<Staff>
</Staff>
</Staffs>
</Company>
</BusinessList>