我有一个 Sitecore 自定义应用程序,它基本上是一个搜索屏幕。我希望用户能够单击搜索结果中的链接并在内容编辑器中打开该内容项。有谁知道如何做到这一点?
3 回答
您需要做的是使用fo参数和项目的 id 作为内容编辑器路径末尾的参数值,例如:
http://localhost/sitecore/shell/Applications/Content%20Editor.aspx?fo={4142d44b-2237-4795-b219-85e70420fced}
注释后编辑:如果您想在 Sitecore 中使用内容编辑器启动一个新应用程序,您可以使用以下方法:
Sitecore.Text.UrlString parameters = new Sitecore.Text.UrlString();
parameters.Add("id", item.ID.ToString());
parameters.Add("fo", item.ID.ToString());
Sitecore.Shell.Framework.Windows.RunApplication("Content Editor", parameters.ToString());
这是 Mark Ursino 的另一个解决方案,它使用 javascript onclick 事件做同样的事情:http: //firebreaksice.com/link-directly-to-a-sitecore-item-in-a-custom-editor/
约翰韦斯特在这里有一些很好的信息: http ://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/08/Load-or-Reload-an-Item-在-the-Sitecore-ASPNET-CMS.aspx
打开一个新的内容编辑器窗口,可以使用以下格式的 URL:/sitecore/shell/sitecore/content/Applications/Content Editor.aspx?id={0}&fo={0}&la={1} &ver={2}
我创建了一个当前在 Sitecore 6.5 中运行的简单扩展方法。我没有在其他版本的 Sitecore 中测试过它。
public static string ContentEditorUrl(this Item item)
{
return string.Format("{0}/sitecore/shell/Applications/Content%20Editor.aspx?fo={1}",
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority), item.ID);
}