【问题标题】:Ajax update part of panelGridAjax 更新部分 panelGrid
【发布时间】:2012-06-03 13:37:13
【问题描述】:

我有一个包含 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 jsf


    【解决方案1】:

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

    ...

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

    ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      相关资源
      最近更新 更多