我正在使用 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(){...}
}
和
学校 View
@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 字段。
我该怎么做?
最佳答案
更新问题。您不需要从另一个 View 调用 refresh()
。
您可以重写OGSContractView
上的方法public void Enter(ViewChangeEvent event)
,例如
@Override
public void enter(ViewChangeEvent event) {
refresh():
}
每次您进入该 View 时,内部导航器都会调用上述方法。
关于java - 如何刷新 CDIView 以反射(reflect)在另一个 CDIView 中所做的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47755248/