Jsf 在PrimeFaces中使用带有p:dataList的页面事件

Jsf 在PrimeFaces中使用带有p:dataList的页面事件,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,是否支持页面事件?我正试图以以下方式使用页面事件(在浏览页面时使用阻止) ... 这已经不起作用了。该页面保持空白,没有错误。似乎不支持事件 这个场景可以在中模拟吗?正如我从页面所看到的那样,数据列表不支持该事件,另一方面数据网格 解决方案将是猴子补丁,因为我们无法控制重写原始JS文件,您可以在处理分页之前和之后通过javascript钩住事件 下面是一个例子: 假设您的dataListwidgetVar是dataListWV //making sure the widgetVar is r

是否支持
页面
事件?我正试图以以下方式使用
页面
事件(在浏览页面时使用
阻止


...
这已经不起作用了。该页面保持空白,没有错误。
似乎不支持事件

这个场景可以在
中模拟吗?

正如我从
页面所看到的那样,
数据列表
不支持该事件,另一方面
数据网格

解决方案将是猴子补丁,因为我们无法控制重写原始JS文件,您可以在处理分页之前和之后通过javascript钩住事件

下面是一个例子: 假设您的dataList
widgetVar
dataListWV

//making sure the widgetVar is ready to be used    
setTimeout(dataListPaginationExtraEvents, 1000);    

function dataListPaginationExtraEvents() {
   var odlHandlePagination = PF('dataListWV').handlePagination;

   PF('dataListWV').handlePagination = function(newState) {
      //before
      console.log('start fetch');
      //calling original pagination 
      odlHandlePagination.apply(this, [newState]);
      //after
      console.log('end fetch');
   }
 }

从PrimeFaces 5.3最终版(社区版)起,中支持
页面
事件

以下图片取自(第146页)

在以前的指南中没有提到Ajax行为事件

问题中提到的
页面
事件在PrimeFaces 5.3 final(社区版)中完美运行


记录在案,阻止数据列表在PrimeFaces扩展中引发了一个错误!它可能不受支持!您会在控制台上尝试吗?浏览器拒绝编译var'dataListWV'的代码-
小部件不可用
未捕获类型错误:无法读取未定义的属性“handlePagination”
。起初我遇到了这个问题,但它确实是放置js代码的地方,无论如何都要测试它。。。删除文档。准备就绪并设置超时。。我已经更新了答案。PrimeFaces扩展名
不起作用。但是,PrimeFaces
确实如此。PrimeFaces扩展的
不起作用的原因是什么?谢谢。我不确定,可能是PF 5.0中的某些内容发生了变化,导致了扩展中断。但从控制台中的错误消息中,我可以看到选择器不知何故出现了故障!您知道吗,在这种情况下,通过AJAX请求更新与其关联的
(或
)后,使
工作的解决方案?当与之关联的组件通过AJAX更新时,
通常会出现无法正常工作的问题。因此,除了这个特殊情况,我从不使用
//making sure the widgetVar is ready to be used    
setTimeout(dataListPaginationExtraEvents, 1000);    

function dataListPaginationExtraEvents() {
   var odlHandlePagination = PF('dataListWV').handlePagination;

   PF('dataListWV').handlePagination = function(newState) {
      //before
      console.log('start fetch');
      //calling original pagination 
      odlHandlePagination.apply(this, [newState]);
      //after
      console.log('end fetch');
   }
 }