欢迎来到天天文库
浏览记录
ID:40494657
大小:18.94 KB
页数:7页
时间:2019-08-03
《ADF中使用javascript触发事件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ADF中使用javascript触发事件functionsearch(event){varinputTextUI=event.getSource();varkeyCode=event.getKeyCode();if(keyCode==AdfKeyStroke.ENTER_KEY){ varsearchBtn=inputTextUI.findComponent('cb1'); varsearchEvent=newAdfActionEvent(searchBtn); searchEvent.queue(); event.cancel(
2、); }按钮多级触发我觉得这个问题比较典型,实际使用中可能会用到,因此做了个实验总结了一下。我在《传递参数给TaskFlow》项目的基础上,修改了department.jsf页面代码,增加了一个按钮以及相应的ManagedBean。其中,CommandLink的代码如下:3、tScope.deptId}"type="action"/>CommandButton的代码如下:场景1:点击CommandButton,4、然后触发CommandLink的Action事件,即相当于点击了CommandLink。(1)CommandLink上的Action代码如下:publicStringselectLink_action(){FacesContextfctx=FacesContext.getCurrentInstance();UIViewRootroot=fctx.getViewRoot();RichCommandButtonrcb=(RichCommandButton)root.findComponent("cb1");System.out.println("##################5、##"+rcb);ADFContextac=ADFContext.getCurrent();MaprequestScope=ac.getRequestScope();MappageFlowScope=ac.getPageFlowScope();requestScope.put("deptId",JSFUtils.getManagedBeanValue("bindings.DepartmentId.inputValue"));pageFlowScope.put("pf_deptId",JSFUtils.getManagedBeanValue("bindings.Departmen6、tId.inputValue"));return"toEmployees";}注意,之所以在这里要给RequestScope和PageFlowScope变量重新赋值,是因为通过程序无法触发setPropertyListener。(2)CommandButton上的Action代码如下:publicvoidselectButton_actionListener(ActionEventevt){RichCommandButtonrcb=(RichCommandButton)evt.getSource();RichCommandLinkrcl=(RichCommandLink)rcb7、.findComponent("t1:cl1");//表示t1与当前节点在同一层次,找其子节点通过该方式实现ActionEventactionEvent=newActionEvent(rcl);//这里是关键,由此引发另外的事件actionEvent.queue();}其原理是:找到CommandLink对象,为其创建一个ActionEvent事件,并压入事件队列。这样就相当于触发了CommandLink的Action事件。场景2:点击CommandLink,然后触发CommandButto
3、tScope.deptId}"type="action"/>CommandButton的代码如下:场景1:点击CommandButton,
4、然后触发CommandLink的Action事件,即相当于点击了CommandLink。(1)CommandLink上的Action代码如下:publicStringselectLink_action(){FacesContextfctx=FacesContext.getCurrentInstance();UIViewRootroot=fctx.getViewRoot();RichCommandButtonrcb=(RichCommandButton)root.findComponent("cb1");System.out.println("##################
5、##"+rcb);ADFContextac=ADFContext.getCurrent();MaprequestScope=ac.getRequestScope();MappageFlowScope=ac.getPageFlowScope();requestScope.put("deptId",JSFUtils.getManagedBeanValue("bindings.DepartmentId.inputValue"));pageFlowScope.put("pf_deptId",JSFUtils.getManagedBeanValue("bindings.Departmen
6、tId.inputValue"));return"toEmployees";}注意,之所以在这里要给RequestScope和PageFlowScope变量重新赋值,是因为通过程序无法触发setPropertyListener。(2)CommandButton上的Action代码如下:publicvoidselectButton_actionListener(ActionEventevt){RichCommandButtonrcb=(RichCommandButton)evt.getSource();RichCommandLinkrcl=(RichCommandLink)rcb
7、.findComponent("t1:cl1");//表示t1与当前节点在同一层次,找其子节点通过该方式实现ActionEventactionEvent=newActionEvent(rcl);//这里是关键,由此引发另外的事件actionEvent.queue();}其原理是:找到CommandLink对象,为其创建一个ActionEvent事件,并压入事件队列。这样就相当于触发了CommandLink的Action事件。场景2:点击CommandLink,然后触发CommandButto
此文档下载收益归作者所有