重置af:query查询条件时清空结果Table

装载自:http://oracleseeker.com/2013/09/26/adf_query_reset_button_clear_table_result/#more-3823


需求概述

在Oracle ADF开发中,上下布局的查询面板和查询结果页面是最为典型的模式之一(即形如下图的af:query和af:table布局页面)。af:query组件默认提供了搜索、重置、保存查询等常用操作,简化了开发难度,但重置功能只能实现对于查询条件的重置/清除,却无法在重置查询条件的同时将结果Table清空,如需实现该需求,则需使用客户化af:query组件的QueryOperationListener实现,在执行原重置查询条件逻辑之后,增加对于查询结果的清空,本文将对该方法进行详细描述。

Image

 
应用准备

1、应用项目准备,基于HR Schema中的Jobs表创建EO/VO,生成AM,并在AM的实现类中编写如下代码,实现对于JobsVO的空查询,完成后发布该方法为Client Interface:

/**
* 执行空查询,刷新当前JobsVO的结果集
*/
public void executeJobsVoEmptyQuery() {
this.getJobs1().executeEmptyRowSet();
}

?

 

2、在JobsVO中创建子查询,作为页面布局时的查询面板查询条件:

Image(1)

 

3、创建并如图布局main.jspx页面:

Image(2)

 

实现步骤

1、将AM中暴露的JobsVO空查询方法作为MethodAction添加到main.jspx页面的PageDef中:

Image(3)

 

2、在main.jspx页面中选择af:query组件,在属性面板中找到QueryOperationListener属性,其默认值为:#{bindings.ByJobIdAndTitleVCQuery.processQueryOperation},编辑该属性,根据向导生成backingbean及对应的Listener方法:

Image(4)

 

3、打开2步骤中创建的backingbean,修改该Listener对应的方法:

public          void jobsQueryOperationListener(QueryOperationEvent queryOperationEvent) {
       logger.info("queryOperationEvent.getOperation().name(): " +queryOperationEvent.getOperation().name());
       //1.执行原逻辑,清空af:query组件中的查询条件
       JSFUtils.resolveMethodExpression("#{bindings.ByJobIdAndTitleVCQuery.processQueryOperation}",
                    Object.class,new Class[] { QueryOperationEvent.class },new Object[] { queryOperationEvent });
       //2.判断是否为重置动作,如是,则继续后续步骤
      if ("RESET".equals(queryOperationEvent.getOperation().name())) {
             //3.调用AM中的方法,为VO执行空查询,清空VO实例的值
             OperationBinding methodBinding =
             ADFUtils.findOperation("executeJobsVoEmptyQuery");
             methodBinding.execute();
    }
}

 

4、设置af:table的PartialTrigger为af:query:

Image(5)

 

5、运行该应用,查看效果

查看JobId开头为A的Jobs信息:

Image(6)

 

点击查询面板中的重置,实现对于查询条件和查询结果的更新:

Image(7)

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值