Surendra Sharma

Surendra Sharma

Search This Blog

Thursday, August 13, 2015

How to use Strongly Typed Repeater in Sitecore?



It’s all about ITEMS in Sitecore. We are maintaining hierarchy of items in content tree i.e. parent child relationship.

It’s a common scenario in every Sitecore project to get child of particular node.

Typically we use Repeater to bind and show the items.

But do you know about how strongly type Repeater can help us?

For this set Repeater ItemType property as ItemType="Sitecore.Data.Items.Item"

Set DataSource property of every control in repeater to <%#: Item.ID %>

This forces the control to retrieve its field values from that particular bind item as opposed to the Context item. Colon in binding expression <%#: %> indicates that final bound data should be HTML-encoded.

So your final HTML code looks like this

<asp:Repeater ID="rptCars" ItemType="Sitecore.Data.Items.Item" runat="server">
    <HeaderTemplate>
        <div>
            <h3>Latest Cars</h3>
    </HeaderTemplate>
    <ItemTemplate>
<sc:Text Field="Car Name" runat="server" DataSource="<%#: Item.ID %>" />
       <sc:FieldRenderer FieldName="Car Description" runat="server" DataSource="<%#: Item.ID %>" />
       <sc:Link DataSource="<%#: Item.ID %>" Field="Car Website" runat="server" />
    </ItemTemplate>
    <FooterTemplate>
        </div>
    </FooterTemplate>
</asp:Repeater>

Code behind page

rptCars.DataSource = Sitecore.Context.Item.GetChildren().Where(x => x.TemplateName.Equals("Cars")).ToList();
rptCars.DataBind();
 
Please leave your comments or share this code if it’s useful for you.

No comments:

Post a Comment