【问题标题】:When ajax oncomplete, jquery does not working, Primefaces当ajax oncomplete时,jquery不起作用,Primefaces
【发布时间】:2020-07-12 22:43:07
【问题描述】:

我将这个plugin 用于我的Primefaces 项目中的固定表列。它部分起作用。

primefaces v6.1
jQuery v1.7.1

工作时间;

  • p:dataTable --> <p:ajax event="page"(and rowSelect) oncomplete"..." />
  • window.onresize 和窗口加载
  • 刷新页面 (F5)

不工作时;

  • <p:commandButton oncoplete="..." />这个按钮ubdate一个表单。

我在下面分享项目的详细信息。

大纲xhtml;

+ <p:tab>
+-   <h:form id="myForm" >
+--     <p:panelGrid>
+---         <div>
+----            <p:commandButton update=":myForm" oncomplete="load()">
+--     <p:dataTable>
           ...

大纲脚本;

$(document).ready(function(){
    load(); 
});

function load(){
    $("div.ui-datatable-tablewrapper").find('table').tableHeadFixer({
        left: 2
    });     
}

正如我所说,它适用于 dataTable ajax 事件。

但是当commandButton被点击时,它只适用于标题(thead),不适用于正文(tbody)。

我该如何解决?

为了更容易理解,请查看两列的 gif,首先它可以工作,但是通过按钮更改数据表不起作用,我正在调整窗口大小它可以工作。

【问题讨论】:

  • 1:总是发布版本信息。 2:总是发布minimal reproducible example 来处理不起作用的事情。 3:PrimeFaces 里面有固定的头部,为什么要额外的插件?
  • 我知道dataTable有属性。但如果我使用冻结属性,数据表未对齐。对此,我进行了研究,但找不到我想要的。
  • 所以您希望我们找到一个解决方案来解决不起作用的变通办法,而不是帮助真正解决现有功能?
  • 对于现有功能,我研究了this 问题。但它并没有解决我的问题。
  • 太好了,1:就像How to Ask 状态一样,您通常应该从一开始就在问题中发布此类信息。 2:此外,版本信息仍然缺失,minimal reproducible example 也是如此(该功能在 PF 展示中有效)。 3:倾斜实际上是错误的。 jquery 正在 oncomplete 中工作。它被调用并且不会崩溃。问题是 5 岁......对于更旧版本的 PF。从那以后情况发生了变化。

标签: javascript jquery ajax jsf primefaces


【解决方案1】:

我修复了 primefaces 真正的问题。当commandButton完成ajax请求时,运行任意js函数,该函数调用p:remoteCommand

<p:commandButton oncomplete="reload()" />
<p:remoteCommand name="remote" oncomplete="load()" />
$(document).ready(function(){
    load(); 
});
function reload(){
    remote();
}
function load(){
    $("div.ui-datatable-tablewrapper").find('table').tableHeadFixer({
        left: 2
    });     
}

【讨论】:

  • 这不是 PrimeFaces 真正的 问题修复程序,而是针对不需要的解决方法的修复程序。由于缺少minimal reproducible example,甚至无法理解为什么使用 double ajax 调用解决了这个问题。人们应该尝试解决固定标题不起作用的真正原始问题。
  • 如果您觉得自己遇到了问题,那么创建解决方法并不是最好的主意。在github.com/primefaces/primefaces 报告错误,如果可能,请自行修复并提供拉取请求。
猜你喜欢
  • 2020-09-10
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 2017-11-19
相关资源
最近更新 更多