从 sitecore 的页面编辑器中的浮动菜单中删除时删除确认
Delete confirmation when deleting from floating menu in a page editor in sitecore
我是 sitecore 的新手,正在使用 sitecore 7。
问题是当我在页面编辑器中,当我使用浮动菜单 'delete' 功能删除一个项目时,它只是删除了该项目。
客户要求在这里加一个确认框。类似于 'are you sure to delete'。和两个典型的按钮(yes/cancel).
这可能吗?任何帮助将不胜感激。
编辑:
在下图中,红色叉号是一个 delete/remove 按钮。如果我单击它只是删除。我想在点击按钮时显示确认信息。
编辑 2:
好的,我正在编写自定义命令。
我添加了一个新按钮。目标是这个新按钮将询问用户是否要删除组件。如果用户说 'yes' 它将执行与默认内置删除按钮相同的操作。
代码:
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?
"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);
}
}
}
我是 sitecore 的新手,正在使用 sitecore 7。 问题是当我在页面编辑器中,当我使用浮动菜单 'delete' 功能删除一个项目时,它只是删除了该项目。
客户要求在这里加一个确认框。类似于 'are you sure to delete'。和两个典型的按钮(yes/cancel).
这可能吗?任何帮助将不胜感激。
编辑: 在下图中,红色叉号是一个 delete/remove 按钮。如果我单击它只是删除。我想在点击按钮时显示确认信息。
编辑 2:
好的,我正在编写自定义命令。 我添加了一个新按钮。目标是这个新按钮将询问用户是否要删除组件。如果用户说 'yes' 它将执行与默认内置删除按钮相同的操作。
代码:
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?
"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);
}
}
}