f:ajax侦听器on event=未在ui内调用更改:重复

f:ajax侦听器on event=未在ui内调用更改:重复,ajax,jsf,Ajax,Jsf,我使用的是Soteria 1.0.1、Mojarra 2.3.9和PrimeFaces 6.1。关于Glassfish 5.1 在ui内部:重复在更改事件上不调用ajax侦听器。侦听器仅在单击事件时调用一次。 应该使用哪个事件 我已经使用foreach进行迭代,但是没有调用侦听器 我已经将execute属性从@this更改为:frmOverviewPlant:selectDyna3和:rep\u mandatory3:selectDyna3,但仍然没有调用侦听器 如果我将f:ajax event

我使用的是Soteria 1.0.1、Mojarra 2.3.9和PrimeFaces 6.1。关于Glassfish 5.1

在ui内部:重复在更改事件上不调用ajax侦听器。侦听器仅在单击事件时调用一次。 应该使用哪个事件

我已经使用foreach进行迭代,但是没有调用侦听器

我已经将execute属性从@this更改为:frmOverviewPlant:selectDyna3和:rep\u mandatory3:selectDyna3,但仍然没有调用侦听器

如果我将f:ajax event=“change”更改为f:ajax event=“click”,则只调用侦听器一次

如果省略属性execute:和render:,并使用immediate=“true”,则调用侦听器。但这是没有用的,因为该值不会发送回侦听器

如果我在ui:repeat外部使用相同的selectOneMenu,那么即使没有设置ajax属性execute,也会调用侦听器

哪个组件可用于迭代动态生成的列表?每次选择另一个主项时,该列表都会更改。该主要项目的详细信息在表单中呈现

这种行为是由ui:iterate引起的吗?或者通过ajax属性事件:或呈现:或执行:的无效值执行



我希望调用侦听器,以便使用所选选项更新主项。

我无法直接回答您的问题,因为您的声明说一切都很好。但我注意到您的代码中有以下内容

  • 我们无法在内部创建id,因为JSF视图不允许重复id
  • 确保侦听器方法应具有参数AjaxBehaviorEvent(例如-methodXXXX(AjaxBehaviorEvent事件)
  • 请确保我们不应呈现包含下拉操作的父组
  • 让我们试试专门为值更改操作引入的
    valueChangeListener
  • 如果您想要呈现的父区域,那么我建议您使用javascript实现,因为我没有找到任何使用JSF组件的解决方案

首先从阅读开始,我们无法在右侧内部创建id?因为JSF将对重复id引发异常。OP是否说他对重复id引发异常…?多亏了所有人,我做了2个更改,现在它起作用了:1。'可能原因nr 4。“当然,我已经创建了ui中使用的列表:重复作为最终列表,并在需要时用新项目重新填充2。我已经删除了ajax事件中的execute属性。想解释一下你为什么这么想吗?嘿@Kukeltje,问得好。我错过了动作的部分。我已经用一些细节更新了我的答案。