【问题标题】:Can a Primefaces tab be manually reset to force a reload是否可以手动重置 Primefaces 选项卡以强制重新加载
【发布时间】:2021-12-08 13:20:32
【问题描述】:

我正在使用 Primefaces tabView,其动态和缓存属性设置为 true - 因此,每个选项卡在第一次显示时被加载,然后被缓存,因此确实需要重新加载。 有没有办法手动强制重新加载已缓存的选项卡,以便下次显示时再次从服务器而不是从缓存中获取内容?

如果我有类似的东西

<p:tabView id="MyTabViewId" widgetVar="_MyTabViewId" dynamic="true" cache="true">
...
</p:tabView>

我可以写一些类似于下面的 javascript

PF('_MyTabViewId').invalidate(0);
PF('_MyTabViewId').select(0);

并且第一个选项卡将从服务器加载,无论它是否在缓存中。

【问题讨论】:

    标签: primefaces tabview


    【解决方案1】:

    是的,您只需将此脚本添加到您的页面...

    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 中

    【讨论】:

    • 非常感谢;很有魅力
    猜你喜欢
    • 2022-01-05
    • 2010-12-20
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2020-04-01
    相关资源
    最近更新 更多