4

我是一个非常新的站点核心,正在使用站点核心 7。问题是当我在页面编辑器中时,当我使用浮动菜单“删除”功能删除一个项目时,它只是删除了该项目。

客户要求是在此处添加一个确认框。诸如“您确定要删除”之类的内容。和两个典型的按钮(是/取消)。

这甚至可能吗?任何帮助,将不胜感激。

编辑:在下图中,红叉是删除/删除按钮。如果我点击它只会删除。我想在单击按钮时显示确认。

在此处输入图像描述

编辑2:

好的,我正在编写一个自定义命令。我添加了一个新按钮。目标是这个新按钮将询问用户是否要删除组件。如果用户说“是”,它将执行与默认内置删除按钮相同的操作。

在此处输入图像描述

代码:

public class RemoveWithNoti:Sitecore.Shell.Applications.WebEdit.Commands.WebEditCommand
    {
        public override void Execute(CommandContext context)
        {

            Context.ClientPage.Start(this, "Run", context.Parameters);
        }

    protected static void Run(ClientPipelineArgs args)
    {
        if (args.IsPostBack)
        {
            if (args.HasResult)
            {
                //Here I need to call "chrome:rendering:delete" this . I just dont know how to!!

            }
        }
        else
        {
            SheerResponse.Confirm("Are you certain that you want to remove this component");
            args.WaitForPostBack();
        }
    }
    }

如何从代码中调用 chrome:rendering:delete?

4

1 回答 1

3

“chrome:rendering:delete”事件由 javascript 在客户端处理。这是确切的位置:/sitecore/shell/Applications/Page Modes/ChromeTypes/RenderingChromeType.js 文件:

handleMessage: function(message, params, sender) {
    switch (message) {
...
      case "chrome:rendering:delete": 
        this.deleteControl();
        break;
...
},

您可以在同一个文件中执行以下操作:

deleteControl: function() {
    if(confirm('Are you sure to remove this component?')){
        var placeholder = this.getPlaceholder();

        if (placeholder) {     
          placeholder.type.deleteControl(this.chrome);      
        }
    }
}
于 2016-08-08T11:41:25.600 回答