我有一个嵌套转发器的情况,其中子转发器嵌套在父转发器的ItemTemplate
中。父级的DataSource是Dictionary<String, List<XYZ>>
。
在父级Repeater的ItemDataBound
中,我使用的是完整代码:
protected void rptParent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.Item.DataItem is KeyValuePair<String, List<Object>>)
{
pair = (KeyValuePair<String, List<XYZ>>)e.Item.DataItem;
}
Repeater childRepeater = e.Item.FindControl("rptChild") as Repeater;
//bind the child repeater.
childRepeater.ItemDataBound += new RepeaterItemEventHandler(childRepeater_ItemDataBound);
childRepeater.DataSource = pair.Value;
childRepeater.DataBind();
}
}
protected void childRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Footer)
{
//Access the Parent row's Key value
}
}
有两个问题:
我可以在绑定父级时使用隐藏字段并将其设置为Key值,然后检索子级中的隐藏字段值吗?
触发事件的顺序如下:
一个。 Parent_ItemDataBound
Dictionary<Key, List<XYZ>>
我。父转发器的第1行的每个子行的Child_ItemDataBound
II。对于儿童中继器的页脚Child_ItemDataBound
湾Parent_ItemDataBound
Dictionary<Key, List<XYZ>>
我。父转发器第2行的每个子行的Child_ItemDataBound
II。对于儿童中继器的页脚Child_ItemDataBound
等等。换句话说,每个子行的Parent_ItemDataBound
后面会跟Child_ItemDataBound
个事件 - 循环重复吗?
答案 0 :(得分:0)
以下是您问题的答案:
是的,您可以访问父转发器项控件
var hfID = e.Item.NamingContainer.NamingContainer.FindControl(“hfID”)as HiddenField;
订单是正确的。
希望有所帮助