Muntaser
Muntaser

Reputation: 1

p:remoteCommand update attribute VS p:commandButton update attribute?

I have the following block of code, when i update the "pickList" from the p:remoteCommand it gets updated.

            <h:panelGrid columns="1">
            <p:panel id="panel" header="Units"
                style="margin-bottom:10px; background:#F3F2F2; margin-bottom:0px">

                <p:pickList id="pickList"
                    value="#{AdminController.unitsPickListAll}" var="selectedUnit"
                    itemLabel="#{selectedUnit}" itemValue="#{selectedUnit}" />

            </p:panel>

            <h:panelGrid columns="1" styleClass="right-alignment">
                <h:panelGroup>
                    <p:commandButton id="refereshButton" value="#{i18n.refresh}"
                        immediate="true" action="#{AdminController.getAllUnits}"
                        oncomplete="rc()" />
                    <h:outputText value="&#160;&#160;" />
                    <p:commandButton id="saveButton" value="#{i18n.save}"
                        action="#{AdminController.updateUsedUnits}" />
                        
                </h:panelGroup>
            </h:panelGrid>
        </h:panelGrid>

        <p:remoteCommand name="rc" update="panel" />

But when I use "update" attribute in the "refereshButton", the pickList does not get updated.

Below is the same code but without p:remoteCommand and with update attribute in refereshButton.

        <h:panelGrid columns="1">
            <p:panel id="panel" header="Units"
                style="margin-bottom:10px; background:#F3F2F2; margin-bottom:0px">

                <p:pickList id="pickList"
                    value="#{AdminController.unitsPickListAll}" var="selectedUnit"
                    itemLabel="#{selectedUnit}" itemValue="#{selectedUnit}" />

            </p:panel>

            <h:panelGrid columns="1" styleClass="right-alignment">
                <h:panelGroup>
                    <p:commandButton id="refereshButton" value="#{i18n.refresh}"
                        immediate="true" action="#{AdminController.getAllUnits}"
                        update="pickList" />
                    <h:outputText value="&#160;&#160;" />
                    <p:commandButton id="saveButton" value="#{i18n.save}"
                        action="#{AdminController.updateUsedUnits}" />
                        
                </h:panelGroup>
            </h:panelGrid>
        </h:panelGrid>

What this reason behind this behavior?

Upvotes: 0

Views: 276

Answers (1)

Jasper de Vries
Jasper de Vries

Reputation: 20263

The reason you are getting different results is because you are doing different updates. You update panel from the remote command and pickList from the button.

Use update="panel" on your button to get the same result. This will also save you an Ajax request (and some server load).

Upvotes: 1

Related Questions