我正在处理一个有两个数据表的表单。在第一个数据表中,我显示单选按钮和复选框,而第二个数据表包含 selectOneMenu(s)。值更改侦听器已在 selectOneMenu 上实现,并且在值更改时,后续字段将根据选择进行填充。一切正常,除了当我从下拉列表中选择值时,复选框和单选按钮值被清除。f:ajax event="change" 已用于 selectOneMenu 上的更改事件。看起来整个页面都被刷新并且值被清除了。我还尝试通过更新存在 selectOneMenu 的数据表的 id 来使用 f:ajax。
<p:dataTable styleClass="borderless" id="inResultTable" var="result" value="#{RequestBean.fooFields}" rendered="#{not empty RequestBean.fooFields}">
<p:column style="width:150px;">
<f:facet name="header">
<h:outputText value=" " />
</f:facet>
<h:outputText value="#{msg[result.fldLabel]}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="" />
</f:facet>
<ui:repeat value="#{RequestBean.fooFields}"
var="itm">
<h:selectOneMenu value="#{itm.indFieldValue}"
rendered="#{result.lvlid==itm.lvlid}"
style="width:250px;padding-right:150px;text-align: left;">
<f:selectItems value="#{RequestBean[itm.indField]}" />
</h:selectOneMenu>
<h:selectOneRadio value="#{itm.indFieldValue}" rendered="#{result.lvlid==itm.lvlid and result.fldType=='radio'}"
style="width:250px;padding-right:150px;text-align: left;">
<f:selectItems value="#{RequestBean[itm.indField]}" />
</h:selectOneRadio>
<h:selectManyCheckbox value="#{itm.indFieldCheckBox}" rendered="#{result.lvlid==itm.lvlid and result.fldType=='selectbox'}">
<f:selectItems value="#{RequestBean[itm.indField]}" />
</h:selectManyCheckbox>
</ui:repeat>
</p:column>
</p:dataTable>
<p:dataTable styleClass="borderless"
id="resultTable" var="result"
value="#{RequestBean.depFields}">
<h:selectOneMenu value="#{RequestBean.field4Value}"
valueChangeListener="#{RequestBean.processValueChange4}"
rendered="#{result.lvlid=='5' and result.fldType=='selectbox'}"
style="width:250px;padding-right:150px;text-align: left;">
<f:selectItem itemLabel="--Please Select--" itemValue="#{null}" />
<f:selectItems value="#{RequestBean[result.field]}" />
<f:ajax event="change" render="@form" />
</h:selectOneMenu>
...
...
</p:dataTable>
注意:要求是带有复选框和单选按钮的数据表必须放在顶部。ID 不能用于第二个表中的 selectOneMenu,因为我根据数据库中的条目动态填充了 selectOneMenu(s)。我知道这可能是一个简单的问题,但大多数网站上发布的信息都没有运气。任何帮助,将不胜感激。