如果以编程方式在sitecore中没有更改先前版本,如何删除新创建的项目版本

时间:2017-10-31 14:23:10

标签: sitecore sitecore8.1 sitecore-workflow

我正在锁定&创建项目版本编辑按钮。如果作者在签入版本时没有更改该版本的任何值,我想删除该版本。如果在签入项目版本时没有变化,我想比较版本并删除新创建的版本。

注意:不需要工作流程

2 个答案:

答案 0 :(得分:1)

在ItemSaving事件中,您可以获取项目中的更改列表。 以下是一些获得想法的示例代码:

protected void OnItemSaving(object sender, EventArgs args)
    {
        var newItem = Event.ExtractParameter(args, 0) as Item;
        Item originalItem = newItem.Database.GetItem(newItem.ID, newItem.Language, newItem.Version);
    var differences = FindDifferences(newItem, originalItem);    
} 

private List<string> FindDifferences(Item newItem, Item originalItem)
    {
        newItem.Fields.ReadAll();
        IEnumerable<string> fieldNames = newItem.Fields.Select(f => f.Name);
        return fieldNames
          .Where(fieldName => newItem[fieldName] != originalItem[fieldName])
          .ToList();
    }

答案 1 :(得分:0)

  1. 在内容编辑器中打开项目
  2. 单击“版本”选项卡
  3. 单击Versions chunk上的Compare按钮 因此,您将看到能够比较2个版本的对话框。如果未检测到任何更改,则可以删除新创建的版本。 enter image description here 附:屏幕截图来自7.2版本,但8+版本具有相同的比较版本的方式。