我很难在数据集中的表之间设置关系。我有 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] 和 tbl[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();
}
错误是
该关系不是此 DataView 指向的表的父级。
谢谢