per*_*ssf 5 javascript jsf primefaces
在JSF 2.1+ PrimeFaces 3.2web 应用程序中,我需要在p:dataTable加载a 后触发 JavaScript 函数。我知道这个组件中没有这样的事件,所以我必须找到一个解决方法。
为了更好地理解场景,在页面加载时不呈现 dataTable。它在成功登录后呈现:
<p:commandButton value="Login" update=":aComponentHoldingMyDataTable"
action="#{loginBean.login}"
oncomplete="handleLoginRequest(xhr, status, args)"/>
Run Code Online (Sandbox Code Playgroud)
从上面的代码可以看出,我在成功登录后有一个 JavaScript 钩子,如果它有帮助的话。该update属性强制 dataTable 的呈现属性重新评估:
<p:dataTable var="person" value="#{myBean.lazyModel}" rendered="#{p:userPrincipal() != null}" />
Run Code Online (Sandbox Code Playgroud)
加载数据表后,我需要在每个行项目上运行一个 JavaScript 函数,以便订阅一个cometD主题。
理论上我可以使用oncomplete登录按钮的属性来触发一个属性myBean,以便再次检索要显示在数据表中的值,但它似乎不是很优雅。
JavaScript 函数应该rowKey对 dataTable 的每一行做一些事情:
function javaScriptFunctionToBeTriggered(rowKey) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
在ajax 请求完成后,即在 加载 dataTable后,oncomplete将调用属性中的 javascript 方法。
因此您可以执行以下操作:
<p:commandButton ... oncomplete="doSomething()"/>
Run Code Online (Sandbox Code Playgroud)
一切都应该正常。
| 归档时间: |
|
| 查看次数: |
7779 次 |
| 最近记录: |