Sitecore - 弹出工作箱预览

时间:2013-03-12 12:07:58

标签: sitecore

Sitecore Workbox“预览”使用以下代码将其显示在不同的选项卡中

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

我希望它在弹出窗口中显示预览。 我已经覆盖了工作箱,而且这是修改这个方法的问题。 任何想法我怎么能改变这个?我尝试了不同的东西,但没有什么对我有用......

2 个答案:

答案 0 :(得分:2)

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

您可以基于 PreviewItem 类创建自己的命令,并使用它而不是item:preview命令。

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

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

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

答案 1 :(得分:0)

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

我在工作箱中覆盖了“Open”方法,如下所示,在新标签页中打开内容编辑器项目,

...
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')");
...

它有效!!!!! 再次感谢。