2010-05-25 2 views
0

Попытка сделать это программноJSF - Как запустить яваскрипта выражение из кода

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

Это не работает:

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

Любая идея, почему и как заставить его работать?

Thanx.

+0

_how_ не работает? Какой HTML сгенерирован? Что-нибудь в журналах? – Bozho

ответ

1

Поскольку выражение никогда не оценивается.

При первом подходе, когда страница вынесшей #{rich:component...} оценивается RichFaces и что-то вроде кода ниже оказанный на странице:

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

Потому что вы делаете это progammatically вы обходя эту визуализацию. Я бы предположил, что вы просто используете отображаемый javascript сверху.

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

Спасибо, что открыли мне глаза на предмет оценки (отсюда +1), но он все еще не работает. (мне нужно использовать formID: «Я пробовал как с, так и без него и до сих пор нет. – Ben

+0

Получил это. Вы имели в виду идентификатор формы. :-) спасибо! – Ben

+0

С JSF все сводится к тому, что получается как HTML (и т. Д.). Поэтому, если вы изучите, что отображается с Firebug, вы легко найдете проблемы. В этом случае будет проверяться, что созданный идентификатор существует. – Damo

Смежные вопросы