我想在Poup对话框上单击确定按钮时在我的父窗体上刷新(更新几个字段)。但它并没有刷新领域。我还为Popup Id字段设置了partialTriggers。 我的Jdeveloper版本是11.1.1.7
由于
Umer Farooq答案 0 :(得分:1)
您只需将OK按钮操作(或动作侦听器)属性与通过EL的调用链接到托管bean上提供的方法即可。然后,在其中,您应该刷新每个组件或只保留表单/父组件保留所有组件(通过将其绑定到ADF上下文的部分目标)。该方法应与此示例类似:
public String refresh() {
AdfFacesContext.getCurrentInstance().addPartialTarget(formToRefresh);
return null;
}
private RichPanelFormLayout installDisable; //this should be the binding to the JSF form
public void setInstallDisable(RichPanelFormLayout installDisable) {
this.installDisable = installDisable;
}
public RichPanelFormLayout getInstallDisable() {
return installDisable;
}
答案 1 :(得分:1)
我需要查看您在代码中实现的内容,以便为您提供“最佳”解决方案 - 因为有多种方法可以在弹出窗口中实现对话框。但是,根据Popup对话框的编程方式,这里有几个选项:
Dialog Listener - 如果您使用对话框的内置按钮,请使用此选项。您需要为jspx / jsf页面提供托管bean。在对话框上的托管bean上创建一个Dialog Listener。请参阅下面的对话框侦听器示例。
public void myDialogListener(DialogEvent dialogEvent) {
if (dialogEvent.getOutcome().equals(DialogEvent.Outcome.yes)) {
// do something...
} else if (dialogEvent.getOutcome().equals(DialogEvent.Outcome.no) {
//do something...
}
}
返回侦听器 - 如果您在按钮上运行任务流作为弹出对话框,则将ReturnListener添加到页面的托管bean。只要弹出/对话框关闭,就会触发。
public void myReturnListener(ReturnEvent returnEvent) {
//do something...
}
否则,我会在Endrik建议的手册按钮中添加一个ActionListener。
现在要刷新组件,在托管bean中使用此方法,我在项目中一直使用它:
public void refreshComponent(UIComponent comp) {
RequestContext rContext = RequestContext.getCurrentInstance();
rContext.addPartialTarget(comp);
}
要使用它,您需要将Form的UI组件绑定到托管bean。然后将UI Component的bean属性输入到方法中。
例如,下面将刷新我已绑定到托管bean的Rich Output Text: private RichOutputText myOutputText;
public void refreshMyStuff() {
refreshComponent(myOutputText);
}
有一个好的。