0

When I click "create" button Primefaces executes controller.selectedTableItem method, why? I'm not even updating datatable?

<p:panel header="#{title}">
            <p:toolbar>
                <f:facet name="left">

                    <p:commandButton id="createButton" icon="ui-icon-plus"
                        value="#{localization.Create}" ajax="true"


                        update=":ShipmentFormDiv editButton viewButton">

                        <p:confirm header="#{localization.ConfirmationHeader}"
                            message="#{localization.ConfirmCreateMessage}"
                            icon="ui-icon-alert" />
                    </p:commandButton>  
              </f:facet>

         </p:toolbar>   

         <p:dataTable id="datalist" widgetVar="datalist"
                value="#{controller.lazyItems}" lazy="true" var="item"
                paginator="true" rows="10" rowsPerPageTemplate="10,20,30,40,50"
                selectionMode="single" selection="#{controller.selectedTableItem}"
                paginatorPosition="bottom" reflow="true"
                rowStyleClass="#{item.rowStyleClass}">

                <p:ajax event="rowSelect"
                    update="@form:createButton,@form:viewButton,@form:editButton,@form:deleteButton,@form:InboundShipmentDataTableContextMenu,:ShipmentFormDiv, @form:timeline"
                    listener="#{controller.onSelect}" />

                <p:ajax event="rowUnselect"
                    update="@form:createButton,@form:viewButton,@form:editButton,@form:deleteButton,@form:InboundShipmentDataTableContextMenu, :ShipmentFormDiv"
                    listener="#{controller.onUnselect}" />

                <p:ajax event="contextMenu"
                    update="@form:createButton @form:viewButton @form:editButton @form:deleteButton"
                    listener="#{controller.onContextMenu}" />

                <p:ajax event="rowDblselect"
                    onsuccess="document.getElementById('ShipmentListForm:viewButton').click();" />


                <ui:include src="/admin/templates/columns/office.xhtml">
                </ui:include>


            </p:dataTable>
 </p:panel>
Damian
  • 2,560
  • 5
  • 32
  • 57

1 Answers1

0

I tkink it was because p:commandButton processes every component in ancestor form. It seems that process="@none" helps.

            <p:commandButton id="createButton" icon="ui-icon-plus"
                value="#{localization.Create}"
                actionListener="#{controller.prepareCreate}"
                update=":ShipmentFormDiv,:ShipmentListForm, editButton, viewButton"
                process="@none">

                <p:confirm header="#{localization.ConfirmationHeader}"
                    message="#{localization.ConfirmCreateMessage}"
                    icon="ui-icon-alert" />
            </p:commandButton>
Damian
  • 2,560
  • 5
  • 32
  • 57