内部の OnItemDataBound イベント (itemtype) は 2 回ヒットする必要があります。ここでは 2 人の子がいます。しかし、私が何をしようとしても、それは一度しかヒットされていません。何かご意見は?
データ構造: 親 A
子供 X Y
フロントエンド:
<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;
}
}