可以手动重置 Primefaces 选项卡以强制重新加载吗
Can a Primefaces tab be manually reset to force a reload
我正在使用动态和缓存属性设置为 true 的 Primefaces tabView -
因此,每个选项卡在第一次显示时加载,然后缓存,因此需要重新加载。
有没有办法手动强制重新加载已缓存的选项卡,以便下次显示时再次从服务器而不是从缓存中获取内容?
所以如果我有类似的东西
<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 中
我正在使用动态和缓存属性设置为 true 的 Primefaces tabView - 因此,每个选项卡在第一次显示时加载,然后缓存,因此需要重新加载。 有没有办法手动强制重新加载已缓存的选项卡,以便下次显示时再次从服务器而不是从缓存中获取内容?
所以如果我有类似的东西
<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 中