如何刷新CDIView以反映在另一个CDIView中所做的更改?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何刷新CDIView以反映在另一个CDIView中所做的更改?相关的知识,希望对你有一定的参考价值。

我正在使用cdi-helpers插件,我的UI扩展ViewMenuUI。我有CDIViews喜欢

OGSContractView

@UIScoped
@CDIView("Contract")
@ViewMenuItem(order = ViewMenuItem.DEFAULT, icon = FontAwesome.BANK)
public class OGSContractView extends CssLayout implements View{ 
    // There's some UI Fields and some Functions to refresh the UI Fields
    public void RefreshList(){...}
}

SchoolView

@UIScoped
@CDIView("School")
@ViewMenuItem(order = ViewMenuItem.DEFAULT, icon = FontAwesome.BANK)
public class SchoolView extends CssLayout implements View{
    //Some UI and functions inside
    //here, after some changes, I want to call a Refresh_Function 
    //from my OGSContractView class
    someData.saveInDatabase();
    ogsContractView.refreshList(); // here is my problem
}

SchoolView,我正在更改数据库中的一些数据,之后我想调用OGSContractView.refreshList()来更新那里的一些ui字段。

我怎样才能做到这一点?

答案

有关更新的问题。您不需要从另一个视图调用refresh()

您可以在public void enter(ViewChangeEvent event)上覆盖方法OGSContractView,就像

@Override
public void enter(ViewChangeEvent event) {
   refresh():
}

每次进入该视图时,都会通过内部导航器调用上述方法。

以上是关于如何刷新CDIView以反映在另一个CDIView中所做的更改?的主要内容,如果未能解决你的问题,请参考以下文章

Swift 使用完成处理程序将视图锁定在一个控制器中以反映在另一个控制器中

Flutter web 需要刷新浏览器以反映热重启后的变化

npm start:手动刷新浏览器以反映更改

我可以在 Visual Studio 中刷新 XML 注释以反映已更改的参数吗?

如何在另一个快速课程中结束刷新?

如何在另一个网站显示 OBIEE 报告的上次刷新状态?