2
我有一個2列的面板網格,第一個包含一個標籤,第二個組件。 偵聽器backingBean.onFunktionChange將backingBean.functionGraduand的值設置爲true。因此,在這種情況下,學位的標籤和菜單被呈現。Ajax更新panelGrid的一部分
問題是,如果我先在城市的菜單中選擇一個城市,然後更改菜單「功能」中的值,則整個面板會更新,從而重置城市菜單。 但是,如果功能發生變化,我想保留預選的城市。
如果我在id = panelFunction的panelGroup中包裝函數和度數的標籤和組件,並且只更新此面板,則會破壞這兩個列布局。
有沒有可能只更新panelGrid的一部分而不影響panelGrid的佈局?
<h:panelGrid columns="2" id="panel">
<label>#{function}</label>
<p:selectOneMenu id="menuFunction" value="#{...}" >
<p:ajax event="change" process="menuFunction"
update="panel"
listener="#{backingBean.onFunctionChange}" />
<f:selectItems .../>
</p:selectOneMenu>
<h:outputLabel id="labelDegree" for="menuDegree"
value="#{msgs.degree}"
rendered="#{backingBean.functionGraduand}" />
<p:selectOneMenu id="menuDegree" value="#{...}" rendered="#{backingBean.functionGraduand}">
<f:selectItems .../>
</p:selectOneMenu>
<label class="required">#{msgs.city}</label>
<p:selectOneMenu value="#{...}" id ="city">
<f:selectItems .../>
</p:selectOneMenu>
</h:panelGrid>