2013-08-30 38 views
1

我已通過覆蓋它來自定義工作箱。默認情況下,工作箱顯示特定工作流程狀態下的所有項目版本。 我只需要最後一個版本出現在工作箱中。 與DisplayStates(IWorkflow workflow, XmlControl placeholder)方法玩過,但沒有運氣。Sitecore工作箱只顯示項目的最新版本

我該怎麼做?

回答

3

你需要重寫DisplayStates()方法和過濾DataUri[] items陣列:

List<DataUri> filteredUriList = new List<DataUri>(); 
DataUri[] items = this.GetItems(state, workflow); 

for (int index = offset; index < num; ++index) 
{ 
    Item obj = Sitecore.Context.ContentDatabase.Items[items[index]]; 
    if (obj != null && obj.Versions.IsLatestVersion()) 
     filteredUriList.Add(items[index]); 
} 
items = filteredUriList.ToArray(); 
+0

非常感謝馬拉什。 – Dhanuka777

+0

Sitecore使用this.GetItems(狀態,工作流)方法獲取項目。在我們的數據庫中,有700,000多個sitecore項目分配了工作流程狀態。 Sitecore是否在內部使用索引?我在公共網站上使用lucene索引。你認爲在工作箱內使用索引是否可行? – Dhanuka777

+0

+++,還有一些關於「DataURI」的內容,如果我使用索引並返回一個item [],我怎樣才能將它轉換回DataUri。這是一個好方法嗎? – Dhanuka777

相關問題