user219725
user219725

Reputation:

Getting value in footer template from code behind-Repeater

I have a repeater like this:

<asp:Repeater runat="server" ID="pde">
<HeaderTemplate></HeaderTemplate>

<ItemTemplate>
<asp:Literal runat="server" ID="literal1"></asp:Literal>
</ItemTemplate>

<FooterTemplate><asp:Literal runat="server" ID="literal2"></asp:Literal></FooterTemplate>
</asp:Repeater>

Now in literal2 I want to get the value from code behind.But I am not able to get the literal2 in code behind.Any idea how to get this?

Upvotes: 1

Views: 7115

Answers (2)

First search through items in repeater and only take the footer item type and discard the others. Take a look to the following code.

foreach(RepeaterItem item in repeterName.Controls) 
{ 
    if (item.ItemType != ListItemType.Footer) continue; 
    var lblMyLabel = ((Label)item.FindControl("lblMyLabel")); 
    lblMyLabel.Text = "I found it!!!"; 
}

Upvotes: 0

Kelsey
Kelsey

Reputation: 47726

You should be able to access it by accessing the last RepeaterItem in your repeater which will be your footer. Then do a search, using FindControl, on the RepeaterItem for any control you are looking for.

Using your example above do:

Literal controlYouWant = pde.Controls[pde.Controls.Count - 1].FindControl("literal2") as Literal;

You can break down the statements to:

// This will get you the footer
RepeaterItem item = pde.Controls[pde.Controls.Count - 1];
// From here you finds any control you want within the RepeaterItem.
Literal controlYouWant = item.FindControl("literal2") as Literal;

Upvotes: 3

Related Questions