【问题标题】:update fields of conditionally rendered form更新有条件呈现形式的字段
【发布时间】:2012-05-07 22:38:54
【问题描述】:

我的问题是,我想有条件地渲染 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 的组件中?

谢谢
强尼

【问题讨论】:

    标签: jsf-2 primefaces myfaces


    【解决方案1】:

    您无法更新不在您页面上的组件。但是你可以将你的表单包装在一个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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      相关资源
      最近更新 更多