Sitecore Workbox“预览”使用以下代码将其显示在不同的选项卡中
protected void Preview(string id, string language, string version)
{
...
Context.ClientPage.SendMessage((object)this, "item:preview(id=" + id + ",language=" + language + ",version=" + version + ")");
}
我希望它在弹出窗口中显示预览。 我已经覆盖了工作箱,而且这是修改这个方法的问题。 任何想法我怎么能改变这个?我尝试了不同的东西,但没有什么对我有用......
答案 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')");
...
它有效!!!!! 再次感谢。