在ADF中使用JavaScript的技巧

关键字:ADF,JavaScript,JS,JSF

在ADF的JSPX页面中可以配合使用clientListener和serverListener,在JSPX的非命令控件(如af:inputText)中添加clientListener事件监听,并将事件的业务逻辑操作定义到MangedBean中,完成VO的查询等。

1,JSPX页面中对JavaScript函数的引用,将af:resource或trh:script标签放在af:document内。

1)可以将JavaScript函数直接定义在JSPX页面中

      <trh:script id="s10">
        function doDoubleClick(event) {
            var source = event.getSource();
            AdfCustomEvent.queue(source, "doDbClick",{},false);
        }
      </trh:script>

2)在JSPX页面中引用.js文件中定义好的JavaScript函数

      <af:resource type="javascript" source="/js/xxxx.js"/>

2,使用af:clientListener调用JavaScript函数

setFocus是JavaScript函数,type定义在双击鼠标的时候触发事件。

<af:clientListener method=" setFocus" type="dblClick"/>

3,结合clientListener 和serverListener 。

1)使用clientListener 捕获页面事件,例如回车,并定义类型给serverListener 

function doEnterKeyDown(event) {
    if (AdfKeyStroke.ENTER_KEY == event.getKeyCode()) {
          var source = event.getSource();
          AdfCustomEvent.queue(source, "doEnterKeyDown", {}, false);
    }
}

2)在输入框中添加clientListener和serverListener

            <af:inputText label="#{res['searchSalesOrder.column.SO_COMPANY']}"
                          id="itCompany"
                          value="#{bindings.SoCompany1.inputValue}"
                          columns="#{bindings.SoCompany1.hints.displayWidth}"
                          maximumLength="#{bindings.SoCompany1.hints.precision}"
                          autoSubmit="true"
                          partialTriggers="itCompany selectCompanyDialog"
                          showRequired="true"
                          disabled="#{viewScope.backing_createSO.strPageMode eq 'I' ? false: true}">
              <f:validator binding="#{bindings.SoCompany1.validator}"/>
                 <af:clientListener method="doEnterKeyDown" type="keyDown"/>
              <af:serverListener type="doEnterKey"
                                 method="#{viewScope.backing_createSO.doEnterKeyCompanyListener}"/>
            </af:inputText>

3)在Manged Bean(backing_createSO)中添加doEnterKeyCompanyListener方法

    public void doEnterKeyCompanyListener(ClientEvent clientEvent) {
        //查询客户
        DCIteratorBinding dcIter =
            ADFUtils.findIterator("CustomerLVOIterator");
        ViewObject vo = dcIter.getViewObject();

        Object objCompany = ADFUtils.getBoundAttributeValue("SoCompany1");

        vo.setNamedWhereClauseParam("varCom", objCompany);
        vo.executeQuery();

        //其他操作
        ... ...
    }

参考:

http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_clientListener.html

http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_serverListener.html


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值