通过通过其styleClass选择它来复制其他按钮的功能

问题描述

| 假设单击modalPanel上的按钮A会执行actionA:
<a4j:commandLink styleClass=\"abc\"
     immediate=\"true\"
     action=\"actionA\"
     oncomplete=\"#{rich:component(\'modalPanel\')}.hide(); Event.stop(event); return false;\">
</a4j:commandLink>
现在,我有一个按钮,按钮B,它需要模仿按钮A的功能。这是按钮B的代码
<h:outputLink value=\"javascript:void(0)\" class=\"btn-image close\">
<span><h:outputText value=\"Close\"></h:outputText></span>
<rich:componentControl for=\"#{(empty modalid) ? defaultModalid : modalid}\" operation=\"hide\" event=\"onclick\"/>
</h:outputLink>
在rich:componentControl \的\'for \'属性中,我可以搜索按钮A并调用actionA吗? 任何帮助,将不胜感激!!     

解决方法

        到目前为止,您需要知道所讨论的
<a4j:commandLink>
组件的HTML
<a>
元素的ID。如果它是动态/自动生成的,则您希望通过给组件和父
UINamingContainer
组件(如
<h:form>
)赋予固定ID,让JSF生成固定的客户机ID。
<h:form id=\"myform\">
    <a4j:commandLink id=\"mylink\" ... />
    ...
</h:form>
在上面的示例中,ID将变为“ 7”。要通过JS调用“ 8”事件,您可以执行以下操作
<h:outputLink onclick=\"document.getElementById(\'myform:mylink\').click()\">
如果您使用的是RichFaces4,则可以使用
#{rich:element()}
通过服务器端ID定位元素,这样就不必知道表单的ID
<h:outputLink onclick=\"#{rich:element(\'mylink\')}.click()\">