问题描述
|
假设单击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()\">