1

Sitecore Workbox "preview" 使用以下代码,将其显示在不同的选项卡中,

 protected void Preview(string id, string language, string version)
    {
        ...
        Context.ClientPage.SendMessage((object)this, "item:preview(id=" + id + ",language=" + language + ",version=" + version + ")");
    }

我希望它在弹出窗口中显示预览。我已经覆盖了工作箱,只需修改此方法即可。有什么想法可以改变吗?我尝试了不同的东西,但没有什么对我有用...

4

2 回答 2

2

App_Config\Commands.config中,您可以找到item:preview映射到Sitecore.Shell.Framework.Commands.PreviewItem类。

您可以基于PreviewItem类创建自己的命令并使用它来代替item:preview命令。

如果您反映PreviewItem类的代码,您将看到执行的Run方法

SheerResponse.Eval("window.open('" + (object) webSiteUrl + "', '_blank')");

在这个方法的最后。这会在新选项卡中加载预览。将此逻辑更改为覆盖类中所需的任何内容。

于 2013-03-12T12:52:32.167 回答
0

非常感谢您的回答,这真的很有帮助。实际上,我想在新选项卡中打开内容编辑器。我已经反映了一些命令,例如预览、打开并了解内部发生的情况。

我已经覆盖了工作框中的“打开”mwthod,如下所示在新选项卡中打开内容编辑器项,

...
UrlString urlString = new UrlString("/sitecore/shell/Applications/Content%20Editor");

        urlString.Append("id", id);
        urlString.Append("vs", version);
        urlString.Append("ro", sectionId);
        urlString.Append("la", language);
        urlString.Append("fo", id);

        SheerResponse.Eval("window.open('" + (object)urlString + "', '_blank')");
...

有用!!!!!再次感谢。

于 2013-03-13T10:48:22.763 回答