В веб-приложении JSF 2.1
+ PrimeFaces 3.2
мне нужно запустить функцию JavaScript после загрузки p:dataTable
. Я знаю, что в этом компоненте нет такого события, поэтому я должен найти обходное решение.Запуск действия JavaScript после загрузки Datatable
Чтобы лучше понять сценарий, при загрузке страницы dataTable не отображается. Он оказанными после успешного входа в систему:
<p:commandButton value="Login" update=":aComponentHoldingMyDataTable"
action="#{loginBean.login}"
oncomplete="handleLoginRequest(xhr, status, args)"/>
Как вы можете видеть из приведенного выше кода, у меня есть крюк JavaScript после успешного входа в систему, если это может быть какой-либо помощи. Атрибут update
заставляет оказывается атрибут DataTable к переоценивать:
<p:dataTable var="person" value="#{myBean.lazyModel}" rendered="#{p:userPrincipal() != null}" />
После загрузки DataTable, мне нужно запустить функцию JavaScript для каждого элемента строки, для того, чтобы подписаться на cometD тему.
В теории я мог бы использовать атрибут oncomplete
кнопки входа для запуска свойства от myBean
, чтобы снова получить значения, отображаемые в dataTable, но это не кажется очень изящным.
JavaScript должен сделать что-то с rowKey
каждой строки из DataTable:
function javaScriptFunctionToBeTriggered(rowKey) {
// do something
}
Можете ли вы, возможно, объяснить, что вы пытаетесь сделать из описания пользовательской истории? У меня возникли проблемы с пониманием того, чего вы хотите достичь, потому что, возможно, есть намного более простой и элегантный способ добиться того, что вы пытаетесь сделать. –
@maple_shaft Я старался быть максимально ясным, и я посвятил некоторое время в публикации моего вопроса. Пожалуйста, дайте мне знать, что неясно, чтобы я мог его улучшить. – perissf
«Сразу после завершения действия« oncomplete »атрибут update отображает« dataTable ». Эта часть не ясна. 'oncomplete' - действие на стороне клиента и приходит * после * обновления ajax. –