2011-09-19 69 views
0

我在我的數據集中的表格之間設置關係很困難。我有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(); 
       } 

錯誤是

的關係不父表到該數據視圖 點。

謝謝

回答

1

從未嘗試過的方法CreateChildView,但你不應該使用您在DataRelation定義的名稱?

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