Sitecore-弹出窗口中的工作盒预览

Sitecore-弹出窗口中的工作盒预览,sitecore,Sitecore,Sitecore Workbox“预览”使用以下代码将其显示在不同的选项卡中 protected void Preview(string id, string language, string version) { ... Context.ClientPage.SendMessage((object)this, "item:preview(id=" + id + ",language=" + language + ",version=" + versio

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

 protected void Preview(string id, string language, string version)
    {
        ...
        Context.ClientPage.SendMessage((object)this, "item:preview(id=" + id + ",language=" + language + ",version=" + version + ")");
    }
我希望它在弹出窗口中显示预览。 我已经重写了workbox,现在需要修改这个方法。
有什么办法可以改变吗?我尝试了不同的东西,但没有任何效果…

App\u Config\Commands.Config中,您可以找到
项:preview
映射到
Sitecore.Shell.Framework.Commands.PreviewItem

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

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

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

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

非常感谢您的回答,它非常有用。 实际上,我想在一个新选项卡中打开内容编辑器。 我已经反映了一些命令,比如preview、open,并理解了内部发生的事情

我已经覆盖了workbox中的“Open”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')");
...
它是有效的!!!!! 再次感谢