弹出窗口上的ADF Jdeveloper刷新父窗体关闭

时间:2014-05-04 13:53:32

标签: oracle-adf

我想在Poup对话框上单击确定按钮时在我的父窗体上刷新(更新几个字段)。但它并没有刷新领域。我还为Popup Id字段设置了partialTriggers。 我的Jdeveloper版本是11.1.1.7

由于

Umer Farooq

2 个答案:

答案 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);
}

有一个好的。