通过clientlistener以编程方式触发/模拟点击事件



到目前为止,通过遵循文档,我已经设法使按钮的单击事件工作。我现在正在努力的是通过编程触发ADF组件的单击事件。

源代码如下:

<af:showDetailItem id="pane1" text="Panel Label 1" disclosed="true">
    <af:commandButton text="commandButton 1" id="cb1">
        <af:clientListener method="showNext" type="action" />
    </af:commandButton>
</af:showDetailItem>
<af:showDetailItem id="pane2" text="Panel Label 2">
    <af:commandButton text="commandButton 2" id="cb2">
        <af:clientListener method="showNext" type="action" />
    </af:commandButton>
</af:showDetailItem>
<af:showDetailItem id="pane3" text="Panel Label 3">
    <af:commandButton text="commandButton 3" id="cb3">
        <af:clientListener method="showNext" type="action" />
    </af:commandButton>
</af:showDetailItem>
Javascript

function showNext(evt){        
   var src = evt.getSource();
   var showDetailItemNode = src.getParent(); // targets the showDetailItem tag     
   /* how do I trigger the click event of this node */
}

所以基本上我想要实现的是当按钮#cb1被点击时,我想要模拟showdetailitem# pane1的点击事件等等

<af:serverListner> 

是一个标记,您可以与<af:clientListner>一起使用,将事件传播到托管bean。此外,您还可以将上述标记与<af:showDetailItem>关联。

如果您想在客户端完全使用JavaScript操作手风琴,则需要利用ADF Faces的JavaScript API。特别是这两个:http://docs.oracle.com/cd/E23943_01/apirefs.1111/e12046/oracle/adf/view/js/component/rich/layout/AdfRichShowDetailItem.html和

http://docs.oracle.com/cd/E23943_01/apirefs.1111/e12046/oracle/adf/view/js/component/rich/layout/AdfRichPanelAccordion.html

您可以遍历accordion组件的子组件来查找当前公开的showDetailItem。然后将这个设置为disclosure =false,下一个设置为true。

相关内容

  • 没有找到相关文章

最新更新