2013-08-21 140 views
2

在Sitecore中,我打开了内容编辑器中使用代码的项目,并且在用户做了一些更改之后,我想重新加载内容编辑器。我试图在Sitecore项目中这样做:锁定事件处理程序,我想知道我是否可以引发Sitecore事件,以便重新加载内容编辑器。Sitecore重新加载内容编辑器

回答

1

首先,我认为item:locked可能不是正确的事件,因为您想在用户完成更改后执行此操作。你看过item:saved事件吗?其次,我并不完全确定你想要达到的目标。是否当任何用户进行更改时,内容编辑器的实例或其他人的计算机需要重新加载?我不确定这是可能的。
或者你想在用户做出更改时运行一段自定义代码,但用户需要重新加载自己的实例吗?
如果是后者,这里就是你可以尝试什么:

实际上,有几件事情可以做:
刷新项目
您可以使用类似下面的重新加载项:

string load = String.Concat(new object[] { "item:load(id=", myItem.ID, ",language=", myItem.Language, ",version=", myItem.Version, ")" }); 
Sitecore.Context.ClientPage.SendMessage(this, load); 

刷新内容编辑
如果你想再次加载内容编辑器,你可以使用类似建立的网址:

string.Format("/sitecore/shell/sitecore/content/Applications/Content Editor.aspx 
?id={0}&fo={0}&la={1}&ver={2}", GUID of the item to be selected, 
Language you want to display, version you want to display); 

然后你就可以将用户重定向到该网页(使用简单Response.Redirect),或者您可以通过使用Sitecore.Shell.Framework.Windows.RunApplication开运的内容编辑的一个新实例(如果你在桌面是),例如方法。

+0

我想重新加载项目,你的方法为我工作。谢谢 –

相关问题