嵌套的 Repeater HeaderTemplate 问题
Nested Repeater HeaderTemplate issue
您好,我正在使用嵌套中继器(3 级)并想将 header 添加到二级中继器,这样我就可以为项目组分配标题。问题是,当我将 header 模板添加到二级转发器时,我后面的代码找不到三级转发器。即使 header 模板为空,问题仍然存在。有人有什么建议吗?
<asp:Repeater runat="server" ID="rpt2nd" OnItemDataBound="rpt2nd_OnDataBound">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:Repeater runat="server" ID="rpt3rd">
<ItemTemplate></ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
protected void rpt2nd_OnDataBound(object sender, RepeaterItemEventArgs e)
{
var rpt3rd= ((Repeater)e.Item.FindControl("rpt3rd"));
rpt3rd.DataSource = ((KeyValuePair<int, IEnumerable<CustomClass>>)e.Item.DataItem).Value;
rpt3rd.DataBind();
}
您需要在 rpt2nd_OnDataBound
的顶部添加 if(e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return;
(另外,应将其重命名为 rpt2nd_OnItemDataBound
以避免混淆)。
您好,我正在使用嵌套中继器(3 级)并想将 header 添加到二级中继器,这样我就可以为项目组分配标题。问题是,当我将 header 模板添加到二级转发器时,我后面的代码找不到三级转发器。即使 header 模板为空,问题仍然存在。有人有什么建议吗?
<asp:Repeater runat="server" ID="rpt2nd" OnItemDataBound="rpt2nd_OnDataBound">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:Repeater runat="server" ID="rpt3rd">
<ItemTemplate></ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
protected void rpt2nd_OnDataBound(object sender, RepeaterItemEventArgs e)
{
var rpt3rd= ((Repeater)e.Item.FindControl("rpt3rd"));
rpt3rd.DataSource = ((KeyValuePair<int, IEnumerable<CustomClass>>)e.Item.DataItem).Value;
rpt3rd.DataBind();
}
您需要在 rpt2nd_OnDataBound
的顶部添加 if(e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return;
(另外,应将其重命名为 rpt2nd_OnItemDataBound
以避免混淆)。