c# - 多对多父子转发器,数据关系c#

标签 c# repeater parent-child

我正在尝试设置一个带有嵌套中继器的场景,其中我有多个不同的类别,并在它们下面显示多个子项。问题在于,父表和子表在类别 id 上匹配,它返回所有表类别所需的结果,但这个类别除外。出于某种原因,在这种情况下,我只从表 A 中取回 textCategory1 作为页面上该类别中表 b 中所有子项的标题文本,我检查了 sp 并且所有三个都被传递。

父表A
标题文本:TextCategory1|类别:13

标题文本:TextCategory2|类别:73

标题文本:TextCategory3|类别:14

子表 B
标题文本:childText|类别:13 |父类别:Null

标题文本:childText|类别:74|父类别:2

标题文本:childText|类别:14|父类别:2

这是我使用的数据关系,我将主转发器数据绑定(bind)到第一个表的结果,而子转发器在主项数据绑定(bind)中绑定(bind)到数据关系的 datarow.createchildview。

ds.Relations.Add(new DataRelation("Category_ID", ds.Tables[0].Columns["Category_ID"],
ds.Tables[1].Columns["Category_ID"]));

MasterRep.DataSource = ds.Tables[0];
MasterRep.DataBind();

MasterRep Item DataBound 部分:

 DataRowView drv = e.Item.DataItem as DataRowView;
 Repeater ChildRep = e.Item.FindControl("ChildRep") as Repeater;

 if (drv != null && ChildRep != null)
 {

    ChildRep.DataSource = drv.CreateChildView("Category_ID");
    ChildRep.DataBind();
 }

谁能提出在这种情况下我不会从表 a 中获取所有三个策略文本行的原因?

最佳答案

一些突出的事情没有意义,很可能会导致您的问题。

(我假设子行的父类别将子行连接到父行(使用父行的类别 ID)。)

  1. 表 B 中的第一项(类别 13)的父类别为 null。这意味着它没有 parent 。此外,类别 ID 与表 A 中第一项的类别 ID 相同。
  2. 表 B 中的项目 2 和 3 的父类别均为 2。表 A 中没有任何项目具有此 ID,这实际上意味着这两个子项目没有父类别。
  3. 表 B 中的项目 3 与表 A 中的项目 3 具有相同的 ID。

此外,您能否编辑您的答案以包含 MasterRep OnItemDatabound() 方法的完整代码?问题也可能在那里。

关于c# - 多对多父子转发器,数据关系c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879951/

相关文章:

c# - 在 Windows Mobile 6 上使用 Compact Framework 设置时区

c# - ViewComponents 不是异步的

java - 如何更改JDO中对象的父对象?

c# - 检测由 kiosk 应用程序启动的 Citrix session 终止

c# - 无法远程连接数据库

c# - 在中继器中搜索 ImageButton

c# - 具有复杂 ItemType 失败的 ASP.NET 强类型数据控件(中继器)

c# - Repeater 内的 Linkbutton 用于分页 ASP.Net

javascript - 父子树适用于嵌套的 'if-else' 但不适用于 javascript 中的 'function recursion'

数据源更改时 Angular 2 子组件不更新