В Sitecore я имею следующую структуру:Sitecore Показать родительские и дочерние элементы, правильно используя вложенную Repeater
- Европа
- Германия
- Франция
- Швеция
- Азия
- Китай
- Таиланд
- Ближний Восток
- ОАЭ
- Иран
Я использую вложенной ретранслятор, чтобы показать эту структуру в ASP.Net
<asp:Repeater runat="server" ID="repSubsidiaryList">
<ItemTemplate>
<li>
<%# Helper.Field(Container.DataItem as Item, "Short Title)%>
<asp:Repeater ID="InnerRepeater" runat="server">
<ItemTemplate>
<li>
<%# Helper.Field(Container.DataItem as Item, "Name")%>
</li>
</ItemTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
</asp:Repeater>
Вот код позади:
List<Item> _countryNameItems = new List<Item>();
protected void Page_Load(object sender, EventArgs e)
{
//get the item Subsidaries in sitecore
Item mainSubsidiaryFolderItem = Sitecore.Context.Database.GetItem(Settings.GetSetting("SubsidariesFolder"));
_countryNameItems = mainSubsidiaryFolderItem.Axes.GetDescendants().Where(p => p.TemplateName == "Subsidiary").ToList();
// binding Subsidiary Folder to a repeater
repSubsidiaryList.DataSource = mainSubsidiaryFolderItem.GetChildren();
repSubsidiaryList.DataBind();
}
private void repSubsidiaryList_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
RepeaterItem item = e.Item;
InnerRepeater = (Repeater) item.FindControl("InnerRepeater");
InnerRepeater.DataSource = _countryNameItems;
InnerRepeater.DataBind();
}
я получаю результаты, как это:
- Европа
- Германия
- Франция
- Швеция
- Китай
- Таиланд
- U.A.E
- Иран
- Asia
- Германия
- Франция
- Швеция
- Китай
- Таиланд
- U.A.E
- Иран
- Ближний Восток
- Германия
- Франция
- Швеция
- Китай
- Таиланд
- U.A.E
- Иран
Я не знаю, как получить CurrentItem, а затем связать данные.