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