手风琴内部的dataTable会将选择设置为null

时间:2018-11-08 17:44:24

标签: jsf primefaces

在我看来,我有一个手风琴面板组件,在其中有两个数据表组件。

<p:accordionPanel id="ap-horas"
                                  value="#{autorizacaoHoraExtraMB.trabalhadores}" var="trabalhador"
                                  dynamic="true" cache="true" activeIndex="#{autorizacaoHoraExtraMB.indexAtual}"
                                  multiple="true">
                    <p:ajax event="tabChange" listener="#{autorizacaoHoraExtraMB.filtrarHorasExtras(trabalhador)}"
                            update="ap-horas"/>

它遵循两个数据表的代码

<p:dataTable id="dt-anexos" rowIndexVar="rowIndex"
                                         value="#{autorizacaoHoraExtraMB.trabalhadorEmManutencao.documentoDigitalVoList}"
                                         var="docDigital" selectionMode="single" selection="#{autorizacaoHoraExtraMB.anexoSelecionado}"
                                         emptyMessage="Nenhum anexo encontrado"
                                         rowKey="#{docDigital.id}">
                                <f:facet name="header">
                                    Anexos
                                </f:facet>
                                <p:column headerText="Nome">
                                    <h:outputText value="#{docDigital.nome}"/>
                                </p:column>
                                <p:column>
                                    <p:commandLink
                                            actionListener="#{autorizacaoHoraExtraMB.deletarDocumentoDigital(docDigital)}"
                                            update="form-conteudo:ap-horas, @([id$=messages-content])"
                                            value="Excluir">
                                        <p:confirm header="Confirmação"
                                                   message="Você deseja realmente excluir esse anexo?"
                                                   icon="ui-icon-alert"/>
                                    </p:commandLink>
                                </p:column>
                            </p:dataTable>
                            <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
                                <p:commandButton value="Sim" type="button" styleClass="ui-confirmdialog-yes"
                                                 icon="ui-icon-check"/>
                                <p:commandButton value="Não" type="button" styleClass="ui-confirmdialog-no"
                                                 icon="ui-icon-close"/>
                            </p:confirmDialog>

第二个dataTable:

 <p:dataTable id="dt-vinculoEventos" widgetVar="wv-vinculoEventos"
                                         value="#{autorizacaoHoraExtraMB.trabalhadorEmManutencao.pontoEventoVoList}"
                                         var="pontoEventoAnexo" rowKey="#{pontoEventoAnexo.codPonto}"
                                         selection="#{autorizacaoHoraExtraMB.eventosSelecionados}">
                                <f:facet name="header">
                                    Eventos para vincular com o anexo
                                </f:facet>
                                <p:column selectionMode="multiple" style="text-align: center;"/>
                                <p:column headerText="Data" style="text-align: center;">
                                    <h:outputText value="#{pontoEventoAnexo.data}">
                                        <f:convertDateTime dateStyle="medium"/>
                                    </h:outputText>
                                </p:column>
                                <p:column headerText="Evento">
                                    <h:outputText
                                            value="#{pontoEventoAnexo.codEvento.concat(' - ').concat(pontoEventoAnexo.nomeEvento)}"/>
                                </p:column>
                                <p:column headerText="Quantidade" style="text-align: center;">
                                    <h:outputText value="#{pontoEventoAnexo.quantidade}"/>
                                </p:column>
                                <p:column headerText="Status" style="text-align: center;">
                                    <h:outputText value="#{pontoEventoAnexo.status.descricao}"/>
                                </p:column>
                                <p:column headerText="Anexado Doc.?" style="text-align: center;">
                                    <h:outputText value="#{pontoEventoAnexo.anexadoDocumento ? 'Sim' : 'Não'}"/>
                                </p:column>
                            </p:dataTable>

在第一个数据表的情况下,发生的问题如下: 当我单击数据表上方的命令按钮时

 <p:commandButton id="cb-vincularAnexos"
                                             value="Vincular Anexo Selecionado" icon="fa fa-paperclip"
                                             actionListener="#{autorizacaoHoraExtraMB.vincularAnexos}"
                                             update="ap-horas"/>

变量anexoSelecionado始终设置为null,我不知道为什么,我进行了一次测试,将数据表放在手风琴面板的外面,这样就可以正常设置该值。

in acccordion panel

out accordion panel

有人知道我如何解决这个问题吗?

0 个答案:

没有答案