如何通过按下按钮刷新ADF jsf页面组件?

时间:2014-07-31 08:36:07

标签: jsf oracle-adf

我有一个融合Web应用程序,它包含一个af:查询面板(我用表创建了它的查询面板),以及af:table和af:panelFormLayout,它们彼此相关。当我在查询面板中搜索条目时,结果显示在表格和panelFormLayout中。当我在查询面板中按下重置按钮时,仅重置查询面板。我想要重置所有页面。如何使用ADF的简易性来做到这一点?

1 个答案:

答案 0 :(得分:1)

基本上你想要覆盖af:query的重置功能。在这种情况下,你应该:
1.将af:query的QueryListener属性设置为托管bean方法。您可以参考此示例,其中介绍了所需的所有步骤:Programmatically RESET query panel 在其中,您会看到此调用:AdfFacesContext.getCurrentInstance().addPartialTarget(t1); 它负责刷新表。现在,如果您拥有af:panelGroupLayout(或任何其他支付类型组件)中的所有内容,则可以改为刷新它(因此您需要将其与bean上的字段绑定并使用它而不是 t1 在此次通话中。否则,如果您仍希望刷新整页,请按照步骤2进行操作。


2。添加所需的代码以刷新页面:

    FacesContext context = FacesContext.getCurrentInstance();
    String currentView = context.getViewRoot().getViewId();
    ViewHandler vh = context.getApplication().getViewHandler();
    UIViewRoot x = vh.createView(context, currentView);
    x.setViewId(currentView);
    context.setViewRoot(x);

只需将其放在上述链接中描述的方法中即可。
enter image description here

相关问题