根据项目路径在功能区中显示额外选项

时间:2015-12-08 14:42:51

标签: c# sitecore ribbon

我正在使用Sitecore 8 Update 2。 我需要创建一些存档功能。

所以我打算在与主项目相同的级别添加一个新项目,并在功能区中为用户提供一个按钮。当他们单击此按钮时,当前项目将移动到归档项目(归档项目将与主项目具有相同的结构)。

当用户正在处理存档中的项目时,存档项目的选项不应出现在功能区中。相反,它应该有一个按钮将项目恢复到原来的位置。

我所能找到的是如何根据模板添加功能区部分,但这对我没什么帮助。

有谁知道我怎么做到这一点?

1 个答案:

答案 0 :(得分:2)

以下是如何向Sitecore功能区添加按钮(命令)的很好解释: Adding a custom button to the ribbon

要检查是否应显示按钮,请覆盖QueryState方法。您可以返回CommandState.EnabledCommandState.DisabledCommandState.Hidden,例如:

public override CommandState QueryState(CommandContext context)
{
  Assert.ArgumentNotNull((object) context, "context");
  if (context.Items.Length != 1)
    return CommandState.Hidden;
  Item item = context.Items[0];
  if (item.TemplateID == ...) 
    return CommandState.Enabled;

  return CommandState.Hidden;
}

然后覆盖Execute方法并在那里执行逻辑:

public override void Execute(CommandContext context)
{
  Assert.ArgumentNotNull((object) context, "context");
  if (context.Items.Length != 1)
    return;
  Item item = context.Items[0];
  ...
}