I've looked through several of the existing threads on this as well as looking through some examples posted online. And i can not get my nested repeater to work. I run into one of two problems generally:
1. either the ItemDataBound never gets called at all.
OR
2. I get a protection or object reference error.
Let me post some code (in C#) from the code-behind file:
private void PackageRepeater_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)I'm working with 2 repeaters. The outer one is called PackageRepeater and the inner one is CampaignRepeater. The Campaign.Findall is a method that was already in the project when i started working on it, and it works. Since if i use that as my datasource for the first repeater, i get data.
{
Trace.Write("Package Repeater Databound called");
CampaignRepeater = ((Repeater)e.Item.FindControl("CampaignRepeater"));
CampaignRepeater.DataSource = Campaign.FindAll(Expression.Eq("Package.Id", 2 ));
CampaignRepeater.DataBind();
}
My aspx page looks like this:
<asp:repeater id="PackageRepeater" runat="server">When i run the code this way, the inner repeater (CampaignRepeater) never renders. Looks like the ItemDataBound event never gets fired since my trace statement never shows up. If in the aspx page i include an OnItemDataBound=PackageRepeater_ItemDataBound, it then appears to call it but it gives me the error:
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<%# ((Model.Package)Container.DataItem).ShortName%><asp:repeater id="CampaignRepeater" runat="server" >
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<%# ((Model.Campaign)Container.DataItem).ShortName%>
<%# ((Model.Campaign)Container.DataItem).ShortName%>
<%# ((Model.Campaign)Container.DataItem).Id%>
<%# ((Model.Campaign)Container.DataItem).CountOfUsers()%>
<%# ((Model.Campaign)Container.DataItem).Id%></ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:repeater>
</ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:repeater
System.NullReferenceException: Object reference not set to an instance of an object.
That error occurs when i try to set the datasource for the inner (CampaignRepeater) repeater.
Does anyone have any idea what i am doing wrong here? I'm feeling a bit lost here.