我有一个融合Web应用程序,它包含一个af:查询面板(我用表创建了它的查询面板),以及af:table和af:panelFormLayout,它们彼此相关。当我在查询面板中搜索条目时,结果显示在表格和panelFormLayout中。当我在查询面板中按下重置按钮时,仅重置查询面板。我想要重置所有页面。如何使用ADF的简易性来做到这一点?
答案 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);
只需将其放在上述链接中描述的方法中即可。