从另一个按钮切换p:fieldset

时间:2014-12-29 15:24:23

标签: jsf primefaces fieldset

我想从字段集外部和内部的按钮展开/折叠字段集,问题是并不总是效果是所需的效果。有时候,现场组会在眨眼间膨胀和坍塌,有时候它总是保持开放状态。但是,如果点击另一个按钮与字段集无关,则似乎"重置"状态和按钮开始工作一段时间,直到例如表单验证失败。 这是整个XHTML。 我怀疑这是因为任何AJAX问题

非常感谢

<p:fieldset id="fs_new_po"
            widgetVar="fs_new_po"
            legend="#{msg['btn_add_po.manage_po']}"
            toggleable="true"
            toggleSpeed="500"
            collapsed="true">
    ....

    <p:column>
        <p:commandButton process="@this"
                         update=":mng_po:fs_new_po :mng_po:msgs"
                         value="#{msg['btnCancel']}" 
                         onclick="PF('fs_new_po').toggle();"
                         actionListener="#{managePO.btnCancelClick}"/>
    </p:column>
</p:row>
</p:panelGrid>

</p:fieldset>

...

<p:commandButton process="@this"
                 update=":mng_po:fs_new_po"
                 oncomplete="PF('fs_new_po').toggle();"
                 icon="ui-icon-pencil"
                 title="edit"
                 action="#{managePO.btnEditClick}">
    <f:setPropertyActionListener value="#{po}" target="#{managePO.selectedPo}"/>
</p:commandButton>

1 个答案:

答案 0 :(得分:2)

根据Tiny的建议,我更新了onclick事件,只是可以更改字段集的内容。

<p:fieldset id="fs_new_po"
        widgetVar="fs_new_po"
        legend="#{msg['btn_add_po.manage_po']}"
        toggleable="true"
        toggleSpeed="500"
        collapsed="true">
   //ADDED A CONTENT INSIDE THE FIELDSET TO BE UPDATED
   <p:panelGrid id="fs_cntnt">

....

   <p:column>
       //UPDATE JUST THE CONTENT OF THE FIELDSET
       <p:commandButton process="@this" update=":mng_po:fs_cntnt :mng_po:msgs" value="#   {msg['btnCancel']}" onclick="PF('fs_new_po').toggle();" actionListener="#{managePO.btnCancelClick}" />
   </p:column>
</p:row>
</p:panelGrid>

</p:fieldset>

...
 //UPDATE JUST THE CONTENT OF THE FIELDSET
<p:commandButton process="@this" update=":mng_po:fs_cntnt"  oncomplete="PF('fs_new_po').toggle();" icon="ui-icon-pencil" title="edit" action="#{managePO.btnEditClick}" >
                    <f:setPropertyActionListener value="#{po}" target="#{managePO.selectedPo}" />
                </p:commandButton>

谢谢Tiny!