Agustin
Agustin

Reputation: 69

Problems updating a DataTable in primefaces

I am having trouble updating components in primefaces. Here is one example:

            <h:form>
            <p:panel style="width: 350px;" header="Partial Process">
            <p:dataTable id="tablaPersonas" var="per" value="#{manejador.lista}">
                <p:column style="text-align: center;">
                    <f:facet name="header">
                        <h:outputText value="Nombre" />
                    </f:facet>
                    <h:outputText value="#{per.nombre}" />
                </p:column>
                <p:column style="text-align: center;">
                    <f:facet name="header">
                        <h:outputText value="Apellido" />
                    </f:facet>
                    <h:outputText value="#{per.apellido}" />
                </p:column>
                <p:column headerText="Editar" style="text-align: center;">
                    <p:commandButton value="Editar"/>
                </p:column>
             </p:dataTable>
    </p:panel>
            <p:commandButton value="Abrir" onclick="widgetDlgAgregar.show();"/>

            <p:dialog header="Agregar" widgetVar="widgetDlgAgregar" width="250" height="150" closable="true">
                <h:panelGrid id="gridAdd" columns="2">
                    <h:outputLabel value="Nombre:"/>
                    <p:inputText value="#{manejador.auxiliarAgregar.nombre}"/>

                    <h:outputLabel value="Apellido:"/>
                    <p:inputText value="#{manejador.auxiliarAgregar.apellido}"/>

                    <p:commandButton oncomplete="widgetDlgAgregar.hide();" update="tablaPersonas,gridAdd"  value="Agregar" actionListener="#{manejador.agregarPersona}"/>
                </h:panelGrid>
            </p:dialog>

        </h:form>

As you see, I click on a CommandButton called "Abrir" and a Dialog opens with "Agregar" as title. I fill in the input boxes and when I click the CommandButton "Agregar", the DataTable isn't updated. Why is this happening?

Upvotes: 0

Views: 4575

Answers (2)

zezhayz
zezhayz

Reputation: 26

Oh sorry i think you forgot this update

try this it should work

            <h:form prependId="false">
            <p:panel style="width: 350px;" header="Partial Process">
                <p:dataTable id="tablaPersonas" var="per"
                    value="#{manejador.lista}">
                    <p:column style="text-align: center;">
                        <f:facet name="header">
                            <h:outputText value="Nombre" />
                        </f:facet>
                        <h:outputText value="#{per.nombre}" />
                    </p:column>
                    <p:column style="text-align: center;">
                        <f:facet name="header">
                            <h:outputText value="Apellido" />
                        </f:facet>
                        <h:outputText value="#{per.apellido}" />
                    </p:column>
                    <p:column headerText="Editar" style="text-align: center;">
                        <p:commandButton value="Editar" />
                    </p:column>
                </p:dataTable>
            </p:panel>
            <p:commandButton value="Abrir" onclick="widgetDlgAgregar.show();" update="gridAdd" />



            <p:dialog header="Agregar" widgetVar="widgetDlgAgregar" width="250"
                height="150" closable="true">
                <h:panelGrid id="gridAdd" columns="2">
                    <h:outputLabel value="Nombre:" />
                    <p:inputText value="#{manejador.auxiliarAgregar.nombre}" />

                    <h:outputLabel value="Apellido:" />
                    <p:inputText value="#{manejador.auxiliarAgregar.apellido}" />

                    <p:commandButton oncomplete="widgetDlgAgregar.hide();"
                        update="tablaPersonas,gridAdd" value="Agregar"
                        actionListener="#{manejador.agregarPersona}" />
                </h:panelGrid>
            </p:dialog>

        </h:form>

Upvotes: 1

zezhayz
zezhayz

Reputation: 26

try to put your

<p:dialog header="Agregar" widgetVar="widgetDlgAgregar" width="250" height="150" closable="true">

outside the form and add prependId="false" to your form <h:form prependId="false" >

Upvotes: 0

Related Questions