0

您好,我正在使用嵌套中继器(3 级)并想将标题添加到第二级中继器,因此我可以为项目组分配标题。问题是,当我将标题模板添加到二级中继器时,我的代码后面找不到三级中继器。即使标题模板为空,问题仍然存在。有没有人有什么建议?

<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();
}
4

1 回答 1

0

您需要添加if(e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return;到顶部rpt2nd_OnDataBound(此外,应将其重命名rpt2nd_OnItemDataBound以避免混淆)。

于 2015-03-28T10:12:10.750 回答