0

这是上一篇文章的后续。我有一个导航器,它设置一个 sessionScope,用于确定应该在面板中显示几个视图中的哪一个。onClick 在 panelAll 上进行部分刷新。我创建了 3 个自定义控件,它们基本上做同样的事情,除了一个使用 dynamicContent,一个使用 switchFacet,第三个使用 panelAll 中包含的不同面板上的渲染属性。以下是我的发现:

  1. dynamicContent 仅将当前可见视图加载到组件树中,但似乎不响应外部刷新 - 使用了 panelAll 的部分更新和完整的 UpDate。

  2. 当更改 sessionScope 变量并刷新 panelAll 时,switchFacet 和设置呈现的属性都起作用,除了组件树包含面板中包含的所有组件,无论它们是否可见。将这种方法与 4 或 5 个不同的视图一起使用似乎可以快速响应并完成工作(有点)。但是效率很低,并且可能会导致大量复杂视图出现问题。

我真的很想使用 dynamicContent 但需要一种方法来使它从导航器的 onClick 重建。我确信 dynamicContent 控件不会响应外部部分刷新是有原因的,但我怀疑可能有一种方法可以从 dynamicContent 控件外部强制刷新。

4

1 回答 1

0

我终于从导航器中获得了动态内容。我将此添加为导航器的 onClick:

getComponent("dynamicContent1").show(context.getSubmittedValue());
return sessionScope.put("ssSelectedView", context.getSubmittedValue());

然后对 panelAll 进行部分刷新。现在组件树只包含活动视图,所以它应该是最有效的。

于 2013-10-19T00:45:18.357 回答