1
我正在嘗試做左側導航,並且我能夠獲取父項的子項,但不能獲得孫子項。 Theres主文件夾下有4個文件夾,每個文件夾都有3個項目,全部使用相同的模板。如何讓sitecore中的兒童和孫子們得到
> Main/
Folder 1/
> item1
> item2
> item3
Folder 2/
> item1
> item2
> item3
Folder 3/
> item1
> item2
> item3
Folder 4/
> item1
> item2
> item3
我使用一箇中繼器來啓動:
<ul>
<asp:Literal ID="litFolder" runat="server" />
<asp:Repeater ID="leftNav" runat="server" OnItemDataBound="leftNav_ItemDataBound">
<HeaderTemplate>
<li>
</HeaderTemplate>
<ItemTemplate>
<asp:Repeater ID="rptsubleftNav" runat="server" OnItemDataBound="rptsubleftNav_ItemDataBound">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<asp:HyperLink ID="HLMainnav" runat="server"></asp:HyperLink>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</li>
</FooterTemplate>
</asp:Repeater>
</ul>
的前端設置,以使他們聯繫,但目前其僅在文件夾中,這在本質上是使他們拉動,而不是鏈接的項目在文件夾中。
public partial class LeftNav : System.Web.UI.UserControl
{
Item currentItem = Sitecore.Context.Item;
protected void Page_Load(object sender, EventArgs e)
{
leftNav.DataSource = Sitecore.Context.Database.GetItem("/sitecore/Main/").Children;
leftNav.DataBind();
}
public void leftNav_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Item currentItem = (Item)e.Item.DataItem;
((Literal)e.Item.FindControl("litFolder")).Text = currentItem.Name;
if (currentItem != null)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
var subNav = e.Item.FindControl("rptsubleftNav") as Repeater;
if (subNav != null)
{
subNav.DataSource = currentItem.GetChildren();
subNav.DataBind();
currentItem.ToString();
HyperLink HLMainnav = (HyperLink)e.Item.FindControl("HLMainnav");
HLMainnav.NavigateUrl = LinkManager.GetItemUrl(currentItem);
HLMainnav.Text = currentItem.Name;
}
}
}
}
protected void rptsubleftNav_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
}
如何獲得下一級別並將它們設置爲鏈接而不是文件夾?
(已更新) 我有文件夾及其子文件,但不顯示名稱。我在前端使用<%#的eval(「標題」)%>也試過,但它說,Sitecore的項目不具有場當它。所以不知道如何正確顯示項目,但沒有標題。
確定生病試試這個感謝 – Keith
不要忘了從生成鏈接排除該文件夾的項目。您可以使用類似item.TemplateID == [FolderTemplateID]從列表中排除它們或不爲他們生成的鏈接。 – Gabbar
好吧,我也會添加這個,謝謝 – Keith