Jsf <;的valueChangeListener;h:选择一个功能表>;重新渲染时不起作用<;rich:popupPanel>;
我在jsf页面顶部定义了一个弹出面板(id=PanelAddQueryCriteria),但它只有在用户选择一个菜单项(id=entityKind)并为该弹出面板重新呈现take pace后才启用。但是,由于重新呈现,在弹出面板中选择项(id=queryCriteriaAttr)不会在第一次值更改中触发更改侦听器(#{ceaDBBean.queryCriteriaAttrChanged}),并且仅在再次选择时触发。。。有什么帮助吗?代码如下:Jsf <;的valueChangeListener;h:选择一个功能表>;重新渲染时不起作用<;rich:popupPanel>;,jsf,richfaces,Jsf,Richfaces,我在jsf页面顶部定义了一个弹出面板(id=PanelAddQueryCriteria),但它只有在用户选择一个菜单项(id=entityKind)并为该弹出面板重新呈现take pace后才启用。但是,由于重新呈现,在弹出面板中选择项(id=queryCriteriaAttr)不会在第一次值更改中触发更改侦听器(#{ceaDBBean.queryCriteriaAttrChanged}),并且仅在再次选择时触发。。。有什么帮助吗?代码如下: <rich:popupPanel id="Pa
<rich:popupPanel id="PanelAddQueryCriteria">
<h:form id="formAddQueryCriteria">
<h:selectOneMenu id="queryCriteriaAttr"
value="#{ceaDBBean.queryCriteriaAttr}" required="true"
valueChangeListener="#{ceaDBBean.queryCriteriaAttrChanged}">
<f:selectItems value="#{ceaDBBean.ceaEntityKindAttrs}"/>
</h:selectOneMenu>
</h:form>
</rich:popupPanel>
<h:panelGrid id="searchPanel">
<h:selectOneMenu id="entityKind"
value="#{ceaDBBean.entityKind}" required="true"
valueChangeListener="#{ceaDBBean.entityKindChanged}">
<a4j:ajax event="valueChange" render="addQueryCriteria" execute="@this" />
<f:selectItems value="#{ceaDBBean.ceaEntityKinds}" />
</h:selectOneMenu>
<a4j:commandLink styleClass="no-decor" id="addQueryCriteria"
render="PanelAddQueryCriteria"
disabled="#{empty ceaDBBean.entityKind}"
execute="@this" action="#{ceaDBBean.initAddQuryCriteria}"
oncomplete="#{rich:component('PanelAddQueryCriteria')}.show()">
<h:graphicImage id="addQueryCriteriaImg"
value="/images/icons/common/new.gif" width="16" height="16"
alt="#{adminMsg.addQueryCriteria}" />
<rich:tooltip value="#{adminMsg.addQueryCriteria}" for="addQueryCriteria" />
</a4j:commandLink>
</h:panelGrid>
简短回答:此问题是由以下原因引起的。改变 借 或者,如果你实际上对面板有比表单本身更多的需要更新的内容
render="PanelAddQueryCriteria formAddQueryCriteria"
详细回答:阅读以下相关问题:
render="formAddQueryCriteria"
render="PanelAddQueryCriteria formAddQueryCriteria"