0

私の問題は、form2 を条件付きでレンダリングしたいということです。これは、別の form1 の ajax 更新イベントと衝突し、form2 のレンダリングをトリガーします。

<h:form id="form1">
    <h:selectOneMenu id="selectedGroupId" label="#{msgs.group_group}" value="#{groupBean.selectedGroupId}">
        <p:ajax event="change" listener="#{groupBean.selectGroupEvent}" update=":form1"/>
        <f:selectItems value="#{groupBean.availableGruppen}" />
    </h:selectOneMenu>
</h:form>

<h:form id="form2" rendered="#{not empty groupBean.groupDto}">
  <p:panelGrid id="groupEditGrid">  
    ...
  </p:panelGrid>
</h:form>

form2 のコンポーネント内にレンダリング条件を入れずにこれを行う方法はありますか?

ありがとう
ジョニー

4

1 に答える 1

3

ページにないコンポーネントは更新できません。ただし、条件付きでレンダリングされないフォームでラップし、h:panelGroup代わりラッパーを更新することもできます。

例:

<h:form id="form1">
    <h:selectOneMenu id="selectedGroupId" label="#{msgs.group_group}" 
                     value="# {groupBean.selectedGroupId}">
        <p:ajax event="change" listener="#{groupBean.selectGroupEvent}"
                update=":formWrapper"/>
        <f:selectItems value="#{groupBean.availableGruppen}" />
    </h:selectOneMenu>
</h:form>

<h:panelGroup id="formWrapper>
  <h:form id="form2" rendered="#{not empty groupBean.groupDto}">
    <p:panelGrid id="groupEditGrid">  
      ...
    </p:panelGrid>
  </h:form>
</h:panelGroup>
于 2012-04-27T09:39:08.153 に答える