这是上一篇文章的后续。我有一个导航器,它设置一个 sessionScope,用于确定应该在面板中显示几个视图中的哪一个。onClick 在 panelAll 上进行部分刷新。我创建了 3 个自定义控件,它们基本上做同样的事情,除了一个使用 dynamicContent,一个使用 switchFacet,第三个使用 panelAll 中包含的不同面板上的渲染属性。以下是我的发现:
dynamicContent 仅将当前可见视图加载到组件树中,但似乎不响应外部刷新 - 使用了 panelAll 的部分更新和完整的 UpDate。
当更改 sessionScope 变量并刷新 panelAll 时,switchFacet 和设置呈现的属性都起作用,除了组件树包含面板中包含的所有组件,无论它们是否可见。将这种方法与 4 或 5 个不同的视图一起使用似乎可以快速响应并完成工作(有点)。但是效率很低,并且可能会导致大量复杂视图出现问题。
我真的很想使用 dynamicContent 但需要一种方法来使它从导航器的 onClick 重建。我确信 dynamicContent 控件不会响应外部部分刷新是有原因的,但我怀疑可能有一种方法可以从 dynamicContent 控件外部强制刷新。