gpt4 book ai didi

panelGrid 的 Ajax 更新部分

转载 作者:行者123 更新时间:2023-12-04 05:44:56 24 4
gpt4 key购买 nike

我有一个包含 2 列的面板网格,第一列包含一个标签,第二列包含一个组件。
监听器 backingBean.onFunktionChange 将 backingBean.functionGraduand 的值设置为 true。因此,在这种情况下会呈现学位的标签和菜单。

问题是,如果我首先在城市菜单中选择一个城市,然后更改菜单“功能”中的值,则整个面板都会更新,从而重置城市菜单。
但是,在功能更改的情况下,我想保留预选的城市。

如果我将标签和组件的功能和程度包装在带有 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>

最佳答案

我通过在 ajax 请求中处理整个面板来解决这个问题:

...

<p:ajax event="change" process="panel"
update="panel"
listener="#{backingBean.onFunctionChange}" />

...

关于panelGrid 的 Ajax 更新部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com