嵌套重复器 - 从页脚中的父行访问值
我有一个嵌套转发器的情况,其中子转发器嵌套在父转发器的 ItemTemplate
中。父级的 DataSource 是一个 Dictionary
。
在父 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
}
}
有 2 个问题:
-
我可以在绑定父级时使用隐藏字段并将其设置为 Key 值,然后检索子级中的隐藏字段值?
-
事件触发的顺序是否如下:
事件触发的顺序 Dictionary
第 1 行的 Parent_ItemDataBound
i. Child_ItemDataBound
对于父中继器第 1 行的每个子行
ii。 Child_ItemDataBound
用于子中继器的页脚
b. Dictionary
第 2 行的 Parent_ItemDataBound
i. Child_ItemDataBound
对于父中继器第 2 行的每个子行
ii。 Child_ItemDataBound
用于子中继器的页脚
等。换句话说,每个子行的 Parent_ItemDataBound
事件之后是否会跟随 Child_ItemDataBound
事件 - 循环重复?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下是您问题的答案:
是的,您可以访问父中继器项目控制
var hfID = e.Item.NamingContainer.NamingContainer.FindControl("hfID") as HiddenField;
顺序正确。
希望有帮助
Here are the answers to your question:
Yes, you can access parent repeater item control
var hfID = e.Item.NamingContainer.NamingContainer.FindControl("hfID") as HiddenField;
the order is correct.
Hope that helps