我正在使用 Primefaces tabView,并将动态和缓存属性设置为 true - 因此,每个选项卡都会在第一次显示时加载,然后缓存,因此确实需要重新加载。 有没有办法手动强制重新加载已缓存的选项卡,以便下次显示时再次从服务器而不是从缓存中获取其内容?
所以如果我有类似的东西
<p:tabView id="MyTabViewId" widgetVar="_MyTabViewId" dynamic="true" cache="true">
...
</p:tabView>
我可以编写一些类似于以下内容的 JavaScript
PF('_MyTabViewId').invalidate(0);
PF('_MyTabViewId').select(0);
第一个选项卡将从服务器加载,无论它是否在缓存中。
最佳答案
是的,您只需将此脚本添加到您的页面即可...
if (PrimeFaces.widget.TabView) {
PrimeFaces.widget.TabView.prototype.reloadTab = function(index) {
var reloadPanel = this.panelContainer.children().eq(index);
reloadPanel.data('loaded', false);
this.select(index);
}
}
这会向小部件添加一个 reloadPanel 方法,以便您可以执行此操作 PF('_MyTabViewId').reloadPanel(0);
问题:https://github.com/primefaces/primefaces/issues/8007
公关:https://github.com/primefaces/primefaces/pull/8008
将包含在 PrimeFaces 11.0.0 中
关于primefaces - 是否可以手动重置 Primefaces 选项卡以强制重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69667691/