dataTable внутри аккордеона устанавливает выбор с нулевым - PullRequest
0 голосов
/ 08 ноября 2018

На мой взгляд, у меня есть компонент панели аккордеона и внутри него два компонента с данными.

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

И вторая таблица данных:

 <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, я не знаю почему, я провела тест, помещая данные вне панели аккордеона, и таким образом значение было установлено нормально.

в аккордеонной панели

из панели аккордеона

Кто-нибудь знает, как я могу решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...