2

我在我的项目中使用 primefaces 组件。

我的问题是关于 pickList 组件。

<p:pickList>
  <p:ajax event="transfer" listener="#{rotaBean.operacao}" update="msg frequencia" process="pickList" partialSubmit="true"
         oncomplete="if (args.validationFailed){ PF('periodoColeta').hide();} else{ PF('periodoColeta').show();}" />
</p:pickList>

当我在 pickList 的源列表中有很多项目时,不会调用传输事件 ajax。

源列表大约有 2000 项。

为什么会这样?

请帮帮我。

我昨天在primefaces社区问了这个问题。

Primefaces 社区

有人能帮助我吗。

有解决办法吗?

4

1 回答 1

1

我没有测试你的代码,但会认为问题在于p:pickList提交时处理所有源和所有目标,这意味着转换器为所有实体运行,如果这意味着为每个实体调用数据库,则需要很长时间时间。

如果您找到一种方法来避免处理源列表,您将遇到其他问题,使 dom 和支持 bean 中的列表保持同步(至少我做到了),例如,如果发生错误。

如果这是问题,我发现最简单的解决方案是使用 OmniFaces ListConverter。它真的很棒。但是,我不知道这是否足以在每次传输中转换所有内容。

于 2017-02-18T08:57:20.933 回答