Sitecore:从上下文菜单项调用方法

Sitecore: call methode from context menu item

我创建了自己的字段类型(TreelistEx 的扩展名)。 对于这个扩展,我添加了第二个上下文菜单项(默认情况下 TreelistEx 已经有一个 "edit" 菜单项)。

我首先将此菜单项与命令链接起来。这工作正常,但它并不能真正满足我的要求。我需要菜单项来执行位于字段类型中的方法。

TreelistEx 与 "edit" 菜单项的工作方式类似。没有对命令的引用(我检查了 Commands.config 和许多其他配置文件)但它到达了 TreelistEx.cs

中的编辑方法

有谁知道我怎样才能达到同样的结果?

(或者:有没有办法将字段类型的源 属性 传递给命令)

您在核心数据库中定义了一个 /sitecore/system/Field types/List Types/YOURTreelistEx

提供一个控件,在web.config下方设置<controlSources> 或者提供一个class和Assembly,我猜你已经做到了? 你需要自己控制,或者class

并且您已经在核心数据库中创建了项目 /sitecore/system/Field types/List Types/YOURTreelistEx/菜单/YOURButton

在消息字段中设置 yourfield:yourbutton

修改void IMessageHandler.HandleMessage(Message message) 还有Command调用Edit

public override void HandleMessage(Message message)
{
      Assert.ArgumentNotNull((object) message, "message");
      if (!(message["id"] == this.ID))
        return;
      switch (message.Name)
      {
        case "treelist:edit":
          Context.ClientPage.Start((object) this, "Edit");
          break;
         case "yourfield:yourbutton":
        //Call Your code;
          break;
      }
}

参见示例 Creating a custom Sitecore Field