繁体   English   中英

JSF 2 + Primefaces-更新不起作用

[英]JSF 2 + Primefaces - Update Not Working

我已经搜索过,但是即使实施我发现的解决方案,我也无法使它正常工作。 我在数据表中选择一行,然后单击删除按钮以删除所选对象,但是该对象被删除,但数据表未更新。 这是我的代码:

<h:form id="formPesquisa">  
            ...
            <h:panelGroup id="panelToRender" layout="block">
                <h:panelGroup id="panelDataTable" rendered="#{not empty bean.dataList}" layout="block">
                    <div id="dataTableRegion">
                        <p:panel id="panelBtnsUp" styleClass="cleanPanel">
                            <ui:include src="/templates/btnDataList.xhtml" />
                        </p:panel>
                        <h:panelGroup id="panelTableHolder" layout="block">
                            <p:dataTable id="dataTableBusca" value="#{bean.dataList}" var="entidade" 
                                rendered="#{not empty bean.dataList}" paginator="true" style="width:100%;"
                                selection="#{bean.entidadesSelecionadas}" onRowSelectUpdate="panelBtnsUp,panelBtnsDown,dataTableBusca"
                                onRowUnselectUpdate="panelBtnsUp,panelBtnsDown,dataTableBusca" rowUnselectListener="#{bean.rowUnselectListener}" selectionMode="multiple">
                                <p:column>
                                    <p:graphicImage url="/icons/checkbox_no.png" rendered="#{!bean.containsSelection(entidade)}" />
                                    <p:graphicImage url="/icons/checkbox_yes.png" rendered="#{bean.containsSelection(entidade)}" />
                                </p:column>
                                <ui:insert name="colunasPesquisa" />
                            </p:dataTable>
                        </h:panelGroup>
                        <p:panel id="panelBtnsDown" styleClass="cleanPanel">
                            <ui:include src="/templates/btnDataList.xhtml" />
                        </p:panel>
                    </div>
                </h:panelGroup>
            </h:panelGroup>
            ....
</h:form>

删除按钮在包含的文件中:

<div style="margin:5px 0;">
    <p:commandButton value="#{msg['commons.excluir']}" image="delete" disabled="#{bean.disableDelete()}" action="#{bean.delete}" update="panelDataTable" />
    <p:commandButton value="#{msg['commons.editar']}" image="edit" disabled="#{bean.disableEdit()}" action="#{bean.prepareEdit}" ajax="false" />
</div>

我已经尝试过:

更新= “dataTableBusca”
更新= “panelTableHolder”
更新= “formPesquisa:dataTableBusca”
更新= “formPesquisa:panelTableHolder”

我究竟做错了什么???

谢谢你的帮助。

前两种方法仅在您的按钮和更新的元素为同级元素时才有效。

对于第三种方法和第四种方法,必须遍历所有包含的元素才能获得正确的ID。 您的panelTableHolder位于另外两个h:panelGroup (panelToRender,panelDataTable)和一个div (dataTableRegion)内部。

此外,为确保您从最高级别开始,请在表单ID之前加一个:。

尝试这个:

update=":formPesquisa:panelToRender:panelDataTable:dataTableRegion:panelTableHolder"

您可以在渲染的html中检入这是否是panelTableHolder的正确路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM