1
innner OnItemDataBound event(itemtype)should be hit twice,as here I have 2 children。 但无论我尝试,它只被击中一次。有什么想法吗?itemtemplate in inner nested repeater can not be fired properly
数据结构: 家长 一个
儿童 X Ÿ
前端:
<asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ItemBound">
<ItemTemplate>
<!-- Repeated data -->
<asp:Repeater ID="ChildRepeater" runat="server" OnItemDataBound="InnerItemBound">
<ItemTemplate>
<asp:HiddenField ID="hdxyz" runat="server" Value="false"/>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
后端:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ParentRepeater.DataSource = ...;
ParentRepeater.DataBind();
}
}
protected void ItemBound(object sender, RepeaterItemEventArgs args)
{
if (args.Item.ItemType == ListItemType.Item)
{
Repeater childRepeater = (Repeater)args.Item.FindControl("ChildRepeater");
childRepeater.DataSource = ...;
childRepeater.DataBind();
}
}
protected void InnerItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
//Should be hit twice, as here I have 2 children.
//But whatever I try, it only hit once.
bindHiddenFieldInRepeater(e, "hdxyz", "hdEventID");
return;
}
}
这真是一个很棒的提示。我应该在2小时前发布这个问题。但为什么?我把控制放在itemtemplate而不是一个AlternatingItemTemplate模板中。 – ValidfroM 2012-04-05 16:23:03