Primefaces / JSF功能无法更新动态列

时间:2014-08-24 13:36:44

标签: jsf jsf-2 primefaces

好的,所以我会在没有代码的情况下表达我在子弹点上所做的事情(因为我在一个巨大的混乱中)......

  • 使用<p:layout><p:layoutUnit>组成的单页应用程序(在使用<ui:include>的主页上的不同页面中)
  • 其中一个<p:layoutUnit>是单个<p:dataTable>动态更新(也是动态数据表,基于选定的单行和关联<p:commandButton> }
  • 其余的<p:layoutUnit>动态更新基于dataTable中发生的操作(它们包含按钮,其动作(目前未定义)随dataTable数据和动态标题文本的更改而更新<); < / LI>
  • dataTable使用动态列(因为数据显示更改,如果有帮助,数据采用树形结构,并且我导航&#39; up&#39;并且&#39; down按钮(常用&#39;后面&#39;在标题中)和&#39; next&#39; <p:commandButton>每行)

现在解决实际问题

当我使用&#39; next&#39;按钮转到树中的下一级数据,让我说明会发生什么:

  • Root - &gt; &#39;接着&#39; - &GT;去儿童 - &gt;数据已更新
  • 儿童 - &gt; &#39;接着&#39; - &GT;没有动作 - &gt;使用其中一个非dataTable按钮而没有定义任何功能 - &gt;默认的JSF / PF操作是页面刷新 - &gt;数据已更新
  • &#39;接着&#39; - &GT;去儿童

为什么会这样?为什么“不采取行动”&#39;期间发生在两者之间?我觉得我在这里遗漏了一些东西。它以前从未发生过。当时控制器的所有功能都不可触发。我在IDE中使用调试器检查了这一点。我100%确定它是动态dataTable的问题。但我不明白为什么我在'preRenderView'阶段使用<f:event>启动了列控制器

同时使用&#39; id&#39;对于主索引页面中的正文并使用RequestContext进行更新只会使页面空白。

我已经为列控制器尝试了多种视图和请求范围组合,并使用了一个&#39; PreViewRender&#39; dataTable中的事件侦听器,用于启动列控制器。我所有的努力。

一个特定的组合(IIRC ** NOT **使用PreViewRender监听器导致甚至数据未在dataTable 中更新,忘记<p:commandButton>或{{ 1}} <p:remoteCommand> <a> s。

由于存在大量代码并且我现在处于混乱状态,我会在您取得进展时添加代码

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案!

https://stackoverflow.com/a/2120183/3488113

这是用户BalusC的回答,他建议的一个主要原因是JS错误。

我正在从Bean 调用一个不存在的JavaScript函数 /返回一些错误。在Bean中删除对它的引用已经解决了暂时的问题。

我假设其余的更新操作stop / frontend组件JS操作更改未加载/如果后端调用中存在JS错误,则不会加载操作本身。这是真正的原因。