我在umbraco论坛上看过类似的帖子,但我读过的都没有解决我的确切问题。
我有一个在发布节点时调用的动作处理程序。我希望动作处理程序的最后一件事是刷新内容树,从节点的父节点开始。
假设以下结构:
假设我发布了节点“Zi”。我想刷新“Z”文件夹(并在编辑器中选择“Zi”)。
这可能吗?
我最接近的是使用
umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Parent.Path, true);
这确实刷新了树,但它也折叠了所有节点。我想在上面给出的例子中扩展“Z”节点。
答案 0 :(得分:4)
要保持子文件夹( Za , Zi , Zu )打开并突出显示 Zi ,通过zi的路径而不是 Z 的路径。这将刷新并突出显示 Zi ,但它也会刷新 Z 的子树。
所以 -
umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Path, true);
如果 Z 没有刷新,那么您可以先调用SyncTree Z ,然后调用 Z 。
umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Path, true);
umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Parent.Path, true);
最终这些调用最终会在页面上显示为javascript。 在Umbraco 4.7.0(我没有尝试过任何更新的)电话 -
UmbClientMgr.mainTree().syncTree('-1,1000,10001', true);SyncTree("-1,1000,1001", true);
- 最终为 -
UmbClientMgr.mainTree().syncTree('-1,1000,1001', true);
- 当页面的html返回时,在页面的javascript中。
因此,直接输出该javascript而不是使用UmbClientMgr应允许您放入多行。
实际上,调用父节点的路径将关闭父节点的子树并刷新父节点。对子节点的后续调用将扩展父子树以显示并突出显示子节点。