2014-03-24 26 views
4

嗨,大家好。Sitecore的 - 回到母鬥我有關於Sitecore的桶項的問題

我有以下結構:

enter image description here

我想創建一個可以追溯到上鬥「新聞綜述」的「測試」詳細信息頁面上的一個按鈕。
通常我會做這樣的事情:

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

這裏的問題是,直接父是鬥「44」而不是「新聞綜述」。
什麼是創建一個鏈接到概覽桶的最佳方式?

在此先感謝!

回答

10

有一個在向你當前項目的桶的項目的項目擴展方法。

其在Sitecore.Buckets.dll裝配Sitecore.Buckets.Extensions命名空間。

您可以使用它像這樣:

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

您還可以使用BucketManager檢查項目包含一個內鬥:

BucketManager.IsItemContainedWithinBucket(Sitecore.Context.Item) 
+0

正是我一直在尋找!謝謝 –

1

您可以遞歸調用[Sitecore.Data.Items.Item].Parent並每次執行一次檢查,直到您找到具有模板標識的項目,該模板標識既可以是要查找的模板標識,也可以與存儲桶文件夾的模板標識不同。

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

父/子關係,方法和技術,用於訪問彼此沒有在Sitecore的7真正改變這樣,您在Sitecore的6所使用的任何技術應該還是可用在Sitecore的7