2010-05-25 45 views
0

试图做到这一点编程JSF - 如何运行代码

<a4j:commandLink ... onclick="#{rich:component('modalPanelID')}.show()"/> 

这不起作用JavaScript表达式:

HtmlAjaxCommandLink commandLinkObject = new HtmlAjaxCommandLink(); 
... 
commandLinkObject.setOnClick("#{rich:component('modalPanelID')}.show()"); 

任何想法,为什么和如何使它发挥作用?

Thanx。

+0

_how_它不起作用?什么HTML生成?日志中的任何内容? – Bozho 2010-05-25 15:52:44

回答

1

因为表达式从未被评估过。

随着当页面呈现的#{rich:component...}第一种方法是通过RichFaces和类似下面的代码是在网页上呈现的东西评价:

document.getElementById('formID:modalPanelID').component.show(); 

因为你这样做pro​​gammatically你绕过这种渲染。我建议你只使用上面呈现的JavaScript。

commandLinkObject.setOnClick("document.getElementById('formID:modalPanelID').component.show()"); 
+0

感谢您打开我的评价(因此+1),但它仍然无法正常工作。 (我是否需要使用formID:?我尝试了有和没有,仍然没有去 – Ben 2010-05-26 09:31:58

+0

知道了..你的意思是表单的ID。:-)谢谢! – Ben 2010-05-26 12:26:59

+0

有了JSF,这一切都归结为以HTML(等)呈现的内容。因此,如果您检查使用Firebug呈现的内容,那么您将很容易发现问题。在这种情况下,它将检查创建的ID是否存在。 – Damo 2010-05-26 21:02:35