Dois Datatable no mesmo form

2 respostas
A

Olá amigos bom dia!

Estou com problema em uma manutencao de ordem de servico onde tenho um datatable que é master Ordem de Serviço o outro que é detail Ocorrencia da Ordem de Servico e estou usando Netbeans, primefaces 3.0 M4 a propriedade <p:ajax event=“rowSelect” update=“opnOrdemServico” immediate=“true”/>

mas sempre quando faço isto estou executando update em tudo na verdade gostaria de somente nos grids gostaria de executar o update o dialog sempre vem com dados do outros registro selecionado ou seja o objeto que foi selecionado na master pega o anterior.

segue codigo.

<p:dataTable id="dtbOrdemServico"
                         value="#{TbOrdemServicoMB.tbOrdemServicos}"
                         var="ordemservico"
                         rows="15"
                         paginator="true"
                         paginatorPosition="bottom"
                         selectionMode="single"
                         selection="#{TbOrdemServicoMB.tbOrdemServico}"
                         emptyMessage="Nenhum registro encontrado"
                         rowKey="#{ordemservico.cdOrdemServico}">

                <p:ajax event="rowSelect" update="opnOrdemServico" immediate="true"/>

                <p:column sortBy="#{ordemservico.cdOrdemServico}"
                          filterBy="#{ordemservico.cdOrdemServico}">
                    <f:facet name="header">
                        <h:outputText value="OS"/>
                    </f:facet>
                    <h:outputText value="#{ordemservico.cdOrdemServico}"/>
                </p:column>

                <p:column sortBy="#{ordemservico.dtAnoOrdemServico}"
                          filterBy="#{ordemservico.dtAnoOrdemServico}">
                    <f:facet name="header">
                        <h:outputText value="Ano"/>
                    </f:facet>
                    <h:outputText value="#{ordemservico.dtAnoOrdemServico}"/>
                </p:column>

                <p:column sortBy="#{ordemservico.dsTitulo}"
                          filterBy="#{ordemservico.dsTitulo}">
                    <f:facet name="header">
                        <h:outputText value="Título"/>
                    </f:facet>
                    <h:outputText value="#{ordemservico.dsTitulo}"/>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Abertura"/>
                    </f:facet>
                    <h:outputText value="#{ordemservico.dtAbertura}">
                        <f:convertDateTime pattern="dd/MM/yyyy"
                                           timeZone="GMT-3"/>
                    </h:outputText>
                </p:column>

                <p:column sortBy="#{ordemservico.cdSistema.dsSistema}"
                          filterBy="#{ordemservico.cdSistema.dsSistema}">
                    <f:facet name="header">
                        <h:outputText value="Sistema"/>
                    </f:facet>
                    <h:outputText value="#{ordemservico.cdSistema.dsSistema}"/>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Fechamento"/>
                    </f:facet>
                    <h:outputText value="#{ordemservico.dtFechamento}">
                        <f:convertDateTime pattern="dd/MM/yyyy"
                                           timeZone="GMT-3"/>
                    </h:outputText>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Adicionar"/>
                    </f:facet>

                    <p:commandLink value="Ocorrência"
                                   update=":display"
                                   action="#{TbOrdemServicoMB.navegarNovoOcorrencia}"
                                   onclick="dlgOcorrencia.show()"/>
                </p:column>

            </p:dataTable>

            <p:dataTable id="dtbOcorrencia"
                         value="#{TbOrdemServicoMB.tbOcorrencias}"
                         var="ocorrencia"
                         rows="15"
                         paginator="true"
                         paginatorPosition="bottom"
                         selectionMode="single"
                         selection="#{TbOcorrenciaMB.tbOcorrencia}"
                         emptyMessage="Nenhum registro encontrado"
                         rowKey="#{ocorrencia.cdOrdemServico}">

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="OS"/>
                    </f:facet>
                    <h:outputText value="#{ocorrencia.cdOrdemServico}"/>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Ano"/>
                    </f:facet>
                    <h:outputText value="#{ocorrencia.dtAnoOrdemServico}"/>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Movimento"/>
                    </f:facet>
                    <h:outputText value="#{ocorrencia.nrMovimento}"/>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Data"/>
                    </f:facet>
                    <h:outputText value="#{ocorrencia.dtOcorrencia}">
                        <f:convertDateTime pattern="dd/MM/yyyy"
                                           timeZone="GMT-3"/>
                    </h:outputText>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Ocorrência"/>
                    </f:facet>
                    <h:outputText value="#{ocorrencia.dsOcorrencia}"/>
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Tipo"/>
                    </f:facet>
                    <h:outputText value="#{ocorrencia.cdOcorrenciaTipo.dsOcorrenciaTipo}"/>
                </p:column>

            </p:dataTable>

        </p:panel>

    </h:form>


    <p:dialog header="Ocorrência Ordem de Serviço" widgetVar="dlgOcorrencia" resizable="false" width="750" height="350">

        <h:form id="frmOcorrencia">

            <h:panelGrid columns="2" style="margin-bottom:10px">

                <h:outputLabel value="OS"
                               for="itxdlgcdOrdem"/>
                <h:inputText id="itxdlgcdOrdem"
                             value="#{TbOrdemServicoMB.tbOcorrencia.cdOrdemServico}"
                             size="10"
                             readonly="true"/>

                <h:outputLabel value="Ano OS"
                               for="itxdlgodtAnoOrdemServico"/>
                <h:inputText id="itxdlgdtAnoOrdemServico"
                             value="#{TbOrdemServicoMB.tbOcorrencia.dtAnoOrdemServico}"
                             size="10"
                             readonly="true"/>

                <h:outputLabel value="Data Ocorrência"
                               for="itxdlgdtOcorrencia"/>
                <p:inputMask id="itxdlgdtOcorrencia"
                             value="#{TbOrdemServicoMB.tbOcorrencia.dtOcorrencia}"
                             size="10"
                             readonly="true"
                             mask="99/99/9999">
                    <f:convertDateTime pattern="dd/MM/yyyy" />
                </p:inputMask>

                <h:outputLabel value="Ocorrencia"
                               for="itxdlgdsOcorrencia"/>
                <p:inputTextarea id="itxdlgdsOcorrencia"
                                 value="#{TbOrdemServicoMB.tbOcorrencia.dsOcorrencia}"
                                 rows="8"
                                 cols="100"
                                 required="true"
                                 requiredMessage="Campo Obrigatório"/>

                <h:outputLabel value="Tipo de Ocorrência"
                               for="somnTbOcorrenciaTipo"/>
                <h:selectOneMenu id="somnTbOcorrenciaTipo"
                                 value="#{TbOrdemServicoMB.tbOcorrencia.cdOcorrenciaTipo}"
                                 converter="tbOcorrenciaTipoConverter">
                    <f:selectItems value="#{TbOrdemServicoMB.tbOcorrenciaTipos}"
                                   var="tbOcorrenciaTipo"
                                   itemLabel="#{tbOcorrenciaTipo.dsOcorrenciaTipo}"
                                   itemValue="#{tbOcorrenciaTipo}"/>
                </h:selectOneMenu>

            </h:panelGrid>

            <h:panelGrid columns="2">
                <p:commandButton value="Gravar"/>
                <p:commandButton value="Cancelar"/>
            </h:panelGrid>
        </h:form>
    </p:dialog>

</ui:composition>

2 Respostas

A

cara,

primeiro, qdo vc for postar algum codigo, coloque dentro da tag [code]
que componente é esse seu com id opnOrdemServico?

t+

A

Me desculpe como foi a primeira vez que postei no forun nao sabia as proximas seram feitas assim.

Consegui resolver estava dando o update no form errado.

datatable master direcioando para o form de ocorrencia da ordem de servico.

segue codigo alterado.

[code]

Obrigado pela ajuda

Anderson

Criado 10 de novembro de 2011
Ultima resposta 11 de nov. de 2011
Respostas 2
Participantes 2