Repeater innestati

Per gestire due repeater innestati:

<asp:Repeater runat="server" ID="groupItemRepeater" OnItemDataBound="groupItemRepeater_ItemDataBound">
<ItemTemplate>
  <!-- bla bla -->
  <asp:Repeater runat="server" ID="singleItemRepeater">
      <ItemTemplate>
         <!-- bla bla -->
      </ItemTemplate>
  </asp:Repeater>
</ItemTemplate>
</asp:Repeater>

E nel code behind:

protected void Page_Load(object sender, EventArgs e)
{
  groupItemRepeater.DataSource = //loading;
  groupItemRepeater.DataBind();
}
protected void groupItemRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
          RepeaterItem item = e.Item;
         if ((item.ItemType == ListItemType.Item) || (item.ItemType == ListItemType.AlternatingItem))
         {
         Repeater myRepeater = (Repeater)item.FindControl("singleItemRepeater");
         if (myRepeater != null)
         {
           IList<MyClass> documenti = //loading ;
           if (documenti.Count > 0)
           {
             myRepeater.DataSource = documenti;
             myRepeater.DataBind();
           }
           else
           {
            item.Visible = false;
           }
         }
  }
}

Se avessimo bisogno di un attributo dell'elemento padre nel repeater più interno, potremmo far riferimento al padre tramite .parent.parent.


Technorati tags:

Print | posted @ mercoledì 19 marzo 2008 21:54

Comments have been closed on this topic.