p:dataTable的懒加载分页需要使用p:ajax事件。

6
我在使用datatable进行懒加载时遇到了问题,我需要找到一个ajax事件来执行我的javascript代码,以便在列表更新时更新图片的封面。这个javascript代码负责根据在初始datatable加载、分页和更改每页记录数时重新填充的列表更新封面流。如果能帮忙找到一种方法,在这些情况下执行我的javascript代码,将不胜感激!提前感谢!
Primefaces 3.3.1 Mojarra 2.1.5 JBoss AS 7.1.0.Final
2个回答

24

它不仅适用于惰性加载:

为了在分页完成后运行js函数,请使用 p:ajax event="page"(它也可能适用于更改页面上的记录数

像这样:

<p:ajax event="page" oncomplete="myJsFunction();"></p:ajax>

其他可用的事件类型包括:

page - 在分页时触发。

sort - 当表格列排序时触发。

filter - 在过滤时触发。

rowSelect - 当选择一行时触发。

rowUnselect - 当取消选择一行时触发。

rowEdit - 当编辑一行时触发。

rowEditCancel - 当取消编辑一行时触发。

colResize - 当调整列大小时触发。

toggleSelect - 当切换表格头复选框时触发。

colReorder - 当重排列时触发。

rowSelectRadio - 带单选按钮的行选择。

rowSelectCheckbox - 带复选框的行选择。

rowUnselectCheckbox - 使用复选框进行行取消选择。

rowDblselect - 双击选择一行。

rowToggle - 行展开或折叠。

contextMenu - 显示上下文菜单。

(摘自PrimeFaces 用户指南


谢谢提供的信息!我添加了“page”事件来执行我的JavaScript,但出现了某些原因导致分页功能中断。它没有返回错误,但是分页不再起作用。我不确定问题可能是什么。还有其他建议吗? - user1530469
1
似乎是你的JS函数中出了问题...我建议的方法没有任何问题... - Daniel
再次感谢您提供的信息和建议。我创建了一个通用的js函数,在分页期间每次都能正常工作。因此,我同意这个问题是由我的js函数引起的。当在commandButton点击时执行此函数时,它确实可以完美地工作。所以,我现在可能需要找到另一种解决方案来解决我的问题。谢谢! - user1530469
我想在加载完成后更新一个后备bean。onComplete可以用于调用JS代码,但如何更新后备bean? - vinay
@vinay,最好提出一个新的详细问题。 - Daniel
@Daniel 我也是这么想的,所以我问了下面这个问题:https://dev59.com/sITba4cB1Zd3GeqP7ooE#26533004 - vinay

2
在Primefaces 6.2中,以下是dataTable事件的完整列表:
- page - sort - filter - rowSelect - rowUnselect - rowEdit - rowEditInit - rowEditCancel - colResize - toggleSelect - colReorder - contextMenu - rowSelectRadio - rowSelectCheckbox - rowUnselectCheckbox - rowDblselect - rowToggle - cellEditInit - cellEdit - rowReorder - swipeleft - swiperight - tap - taphold - cellEditCancel
从文档中得知:javax.faces.component.behavior.ClientBehaviorHolder.getEventNames()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接