在加载数据表后触发 JavaScript 操作
Trigger JavaScript action after Datatable is loaded
在JSF 2.1
+ PrimeFaces 3.2
Web 应用程序中,我需要在加载p:dataTable
后触发 JavaScript 函数。我知道此组件中没有此类事件,因此我必须找到解决方法。
为了更好地理解这种情况,在页面加载时不会呈现数据表。它在成功登录后呈现:
<p:commandButton value="Login" update=":aComponentHoldingMyDataTable"
action="#{loginBean.login}"
oncomplete="handleLoginRequest(xhr, status, args)"/>
从上面的代码中可以看出,成功登录后我有一个 JavaScript 钩子,如果它有任何帮助的话。update
属性强制数据表的呈现属性重估:
<p:dataTable var="person" value="#{myBean.lazyModel}" rendered="#{p:userPrincipal() != null}" />
加载数据表后,我需要在每个行项上运行一个 JavaScript 函数,以便订阅 cometD 主题。
理论上,我可以使用登录按钮的 oncomplete
属性来触发myBean
的属性,以便再次检索要在 dataTable 中显示的值,但它似乎不是很优雅。
JavaScript 函数应该对 dataTable 的每一行的rowKey
做一些事情:
function javaScriptFunctionToBeTriggered(rowKey) {
// do something
}
来自 oncomplete
属性的 javascript 方法在 ajax 请求完成后调用,因此在加载 dataTable 之后调用。
因此,您可以执行以下操作:
<p:commandButton ... oncomplete="doSomething()"/>
一切都应该正常。
如果页面重新加载,请尝试调用文档 ready:
$(document).ready(function() {
doSomething();
});
相关文章:
- 通过javascript操作图像,非常简单
- 如何使用javascript操作SVG节点,使其在MS Edge中工作
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- javascript操作(轮盘赌)打开特定页面的结果
- 无法延迟iPhone/iPad上的两个JavaScript操作
- 单击时的javascript操作不起作用
- 如何在我更改输入时添加javascript操作'的内容
- WebSQL和Javascript操作顺序
- 如何使用 JavaScript 操作 html 按钮元素的“onclick”事件
- 使用javascript操作css元素,左短划线
- 遇到奇怪的javascript操作
- 有没有一种方法可以在长时间运行的JavaScript操作之前强制回流
- 根据用户在asp.net网站中选择的弹出窗口使用JavaScript操作网页
- javascript操作错误
- 如何延迟QML中的JavaScript操作
- 使用 JQuery 或 Javascript 操作 JSON
- 单击时的 JavaScript 操作
- 如何在DOM上的javascript操作之后立即获取html元素的高度
- 基于多个可能的 DIV 内容的 JavaScript 操作
- 在加载数据表后触发 JavaScript 操作