多列数据集关系
问题描述:
我在我的数据集中的表格之间设置关系很困难。我有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");