Html Ajax侦听器无法识别动态填充的SelectOneMenu SelectItems
我有一个Primefaces SelectOne菜单,有两个选项(邮件或报告)。选择其中一项后,我会用相应的数据更新另一个SelectOne菜单。为此,我在bean中使用ajax和一个函数,效果很好。当第二个SelectOne菜单中的一个项目被选中时,我想用一些数据填充Primeface文本编辑器和InputText。与第一个SelectOneMenu类似,我使用了一个ajax监听器,它从我的bean中调用一个函数。问题在于,在选择第二个SelectOne菜单中的动态填充项时,不会调用函数(handleSelect),但在单击此SelectItem时会调用该函数Html Ajax侦听器无法识别动态填充的SelectOneMenu SelectItems,html,ajax,primefaces,javabeans,Html,Ajax,Primefaces,Javabeans,我有一个Primefaces SelectOne菜单,有两个选项(邮件或报告)。选择其中一项后,我会用相应的数据更新另一个SelectOne菜单。为此,我在bean中使用ajax和一个函数,效果很好。当第二个SelectOne菜单中的一个项目被选中时,我想用一些数据填充Primeface文本编辑器和InputText。与第一个SelectOneMenu类似,我使用了一个ajax监听器,它从我的bean中调用一个函数。问题在于,在选择第二个SelectOne菜单中的动态填充项时,不会调用函数(ha
<f:selectItem itemLabel="Select One" itemValue="" />
这让我相信,第二个SelectOneMenu可能不会将动态填充的项确认为SelectItem
或者它可能与初始加载有关,或者更确切地说,是在运行时填充第二个SelectOneMenu时加载
这里是我的Html代码
第一选择功能表
<h:form>
<p:outputLabel for="@next" value="" />
<p:selectOneMenu>
<f:selectItem itemLabel="Select one" itemValue=""/>
<f:selectItem itemLabel="Mail Template" itemValue="Mail Template"/>
<f:selectItem itemLabel="Report Template" itemValue="Report Template"/>
<p:ajax event="itemSelect" update="selectTemplateForm:templateMenu, selectTemplateForm" listener="#{templateBean.mailOrReportHandler}"/>
</p:selectOneMenu>
</h:form>
<h:form id="selectTemplateForm">
<p:outputLabel for="@next" value="" />
<p:selectOneMenu id="templateMenu" filter="true" filterMatchMode="contains" value="mailTemplateBean.text">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{templateBean.templateSelectItemList}"/>
<p:ajax event="itemSelect" update="editorForm:textEditor, editorForm:titleField" listener="#{templateBean.handleSelect}"/>
</p:selectOneMenu>
</h:form>
第二选择菜单
<h:form>
<p:outputLabel for="@next" value="" />
<p:selectOneMenu>
<f:selectItem itemLabel="Select one" itemValue=""/>
<f:selectItem itemLabel="Mail Template" itemValue="Mail Template"/>
<f:selectItem itemLabel="Report Template" itemValue="Report Template"/>
<p:ajax event="itemSelect" update="selectTemplateForm:templateMenu, selectTemplateForm" listener="#{templateBean.mailOrReportHandler}"/>
</p:selectOneMenu>
</h:form>
<h:form id="selectTemplateForm">
<p:outputLabel for="@next" value="" />
<p:selectOneMenu id="templateMenu" filter="true" filterMatchMode="contains" value="mailTemplateBean.text">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{templateBean.templateSelectItemList}"/>
<p:ajax event="itemSelect" update="editorForm:textEditor, editorForm:titleField" listener="#{templateBean.handleSelect}"/>
</p:selectOneMenu>
</h:form>
editorForm是标记的id,其中
<p:textEditor id="textEditor">
和
<p:inputText id="titleField"/>
位于
我应该补充一点,只要我只使用第二个SelectOne菜单和最初加载的SelectItems,填充这些字段就可以了
感谢您的帮助