多列数据集关系

问题描述:

我在我的数据集中的表格之间设置关系很困难。我有2个中继器(嵌套)。 RepeaterReplies是外部中继器。这里是我绑定它并设置关系的地方。多列数据集关系

这里是我有什么

  List<DataColumn> parents = new List<DataColumn>{}; 
      parents.Add(ds.Tables[0].Columns["REPLY_ID"]); 
      parents.Add(ds.Tables[0].Columns["USER_ID"]); 
      List<DataColumn> childs = new List<DataColumn>{}; 
      childs.Add(ds.Tables[2].Columns["REPLY_ID"]); 
      childs.Add(ds.Tables[2].Columns["MAKER_USER_ID"]); 
      DataColumn[] parentz = parents.ToArray(); 
      DataColumn[] children = childs.ToArray(); 
      ds.Relations.Add("parents", parentz, children,false); 
      repeaterReplies.DataSource = ds; 
      repeaterReplies.DataBind(); 

当我检查我的数据集包含3个表(我只需要设置第一和最后一个表之间的关系 - TBL [0]和表[2])和我确信第一个表具有REPLY_ID和USER_ID列,第三个表具有REPLY_ID和MAKER_USER_ID。

结合内中继器(中继器外的的ItemDataBound)当我发现了错误

   DataRowView dv = e.Item.DataItem as DataRowView; 
       Repeater nestedRepeater = e.Item.FindControl("repeaterComments") as Repeater; 
       if (nestedRepeater != null) 
       { 
        nestedRepeater.DataSource = dv.CreateChildView("replies"); 
        nestedRepeater.DataBind(); 
       } 

错误是

的关系不父表到该数据视图 点。

谢谢

从未尝试过的方法CreateChildView,但你不应该使用您在DataRelation定义的名称?

nestedRepeater.DataSource = dv.CreateChildView("parents");