在 primefaces 中更新数据表时出现问题

发布于 2024-11-24 09:05:00 字数 2035 浏览 1 评论 0原文

我在更新 primefaces 中的组件时遇到问题。下面是一个示例:

            <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>

如您所见,我单击名为“Abrir”的命令按钮,然后打开一个标题为“Agregar”的对话框。我填写了输入框,当我单击命令按钮“Agregar”时,数据表未更新。为什么会发生这种情况?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赠佳期 2024-12-01 09:05:00

哦,抱歉,我想你忘记了这个更新,

试试这个,它应该可以工作

            <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>

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>
浅沫记忆 2024-12-01 09:05:00

尝试将

放在表单外部并添加 prependId="false" 到您的表单

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" >

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文