【问题标题】:Sitecore - Go back to parent bucketSitecore - 返回父存储桶
【发布时间】:2014-03-24 12:45:35
【问题描述】:

我对 Sitecore 中的存储桶项目有疑问。

我有以下结构:

我想在“测试”详细信息页面上创建一个按钮,该按钮可以返回到顶部存储桶“新闻概览”。通常我会这样做:

LinkManager.GetItemUrl(Sitecore.Context.Item.Parent)

这里的问题是直接父级是存储桶“44”而不是“新闻概览”。创建概览存储桶链接的最佳方式是什么?

【问题讨论】:

    标签: c# sitecore sitecore7


    【解决方案1】:

    Item中有一个扩展方法,可以为你提供当前item的bucket item。

    它位于Sitecore.Buckets.dll 程序集的Sitecore.Buckets.Extensions 命名空间中。

    你可以这样使用它:

    var bucketItem = Sitecore.Context.Item.GetParentBucketItemOrParent();
    var urlToBucket = LinkManager.GetItemUrl(bucketItem);
    

    您还可以使用 BucketManager 来检查一个项目是否包含在存储桶中:

    BucketManager.IsItemContainedWithinBucket(Sitecore.Context.Item)
    

    【讨论】:

    • 正是我想要的!谢谢
    【解决方案2】:

    您可以递归调用[Sitecore.Data.Items.Item].Parent 并每次执行检查,直到您找到具有模板 ID 的项目,该模板 ID 是您正在查找的模板 ID,或者与存储桶文件夹的模板 ID 不同。

    或者,您也可以使用[Sitecore.Data.Items.Item].Axes.GetAncestors(),但这将按自上而下的顺序返回Item 的所有祖先。

    在 Sitecore 7 中,父/子关系以及相互访问的方法和技术实际上并没有改变。因此,您在 Sitecore 6 中使用的任何技术在 Sitecore 7 中应该仍然可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 2016-11-16
      • 2020-05-22
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多