Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Mudar o style de apenas uma linha na tabela

Boa noite pessoal ,tudo bem?

Eu tenho uma tabela que quando eu clico no botão de confirmar, eu faço um update no banco de dados para mudar o status dele e em seguida eu gostaria de mudar o fundo dessa linha da tabela de acordo com o status(1 seria vermelho, 2 amarelo e 3 verde), qual a melhor maneira de fazer isso?

Eu tentei usar o ng-class, mas ele não colore a linha, colore todas as linhas, alguém me ajuda?

Muito obrigado,

Wagner

insira seu código aqui
6 respostas

Oi Wagner, não sou especialista em angular, mas não rola na tr da tabela você adicionar um if verificando o status e colocando a classe? Se você já fez exatamente isso, rola colar o código aqui?

Oii Wagner, talvez você esteja atingindo o elemento errado ao adicionar o estilo. Pois se está pegando em todas as linhas, o estilo deve estar sendo adicionado na tabela toda e não na linha que você quer destacar. Você consegue selecionar a linha em questão que vc precisa destacar?

Se vc puder compartilhar seu código pra gente ver! :)

abraços

 <tbody>
        <tr  ng-repeat = "produto in produtos|filter : {Ofm_id : search.ofmId , txtTitulo : search.txtTitulo, txtAssunto : search.txtAssunto , txtNumDesACSA : search.txtNumDesACSA }" ng-show="(produto[setor.txtP]) && (produto[setor.setorP]!='3')" >
          <td><md-icon md-svg-src="angularapp/img/ic_picture_as_pdf_black_24px.svg" ng-click="mostrarPDF(produto)"></md-icon></td>
          <td>{{produto.ofmItem_id}}</td>
          <td>{{produto.Ofm_id}}</td>
          <td>{{produto.NumeroConta}}</td>
          <td>{{produto.SubTag}}</td>
          <td>{{produto.SubTagDetalhamento}}</td>
          <td>{{produto.txtNumDesACSA}}</td>
          <td>{{produto.txtTitulo}}</td>
          <td>{{produto.txtAssunto}}</td>
          <td ng-show = "setor.nome == 'Engenharia'" class="status-{{produto[setor.setorP]}}">{{produto.StatusEngenharia}}</td>
          <td ng-show = "setor.nome == 'Engenharia'">{{produto.DataEngenharia}}</td>
          <td ng-show = "setor.nome == 'Corte'" class="status-{{produto[setor.setorP]}}">{{produto.StatusCorte}}</td>
          <td ng-show = "setor.nome == 'Corte'">{{produto.DataCorte}}</td>
          <td ng-show = "setor.nome == 'Dobra'" class="status-{{produto[setor.setorP]}}">{{produto.StatusDobra}}</td>
          <td ng-show = "setor.nome == 'Dobra'">{{produto.DataDobra}}</td>
          <td ng-show = "setor.nome == 'Solda'" class="status-{{produto[setor.setorP]}}">{{produto.StatusSolda}}</td>
          <td ng-show = "setor.nome == 'Solda'">{{produto.DataSolda}}</td>
          <td ng-show = "setor.nome == 'Acabamento'" class="status-{{produto[setor.setorP]}}">{{produto.StatusAcabamento}}</td>
          <td ng-show = "setor.nome == 'Acabamento'">{{produto.DataAcabamento}}</td>
          <td ng-show = "setor.nome == 'Pintura'" class="status-{{produto[setor.setorP]}}">{{produto.StatusPintura}}</td>
          <td ng-show = "setor.nome == 'Pintura'">{{produto.DataPintura}}</td>
          <td ng-show = "setor.nome == 'Montagem'" class="status-{{produto[setor.setorP]}}">{{produto.StatusMontagem}}</td>
          <td ng-show = "setor.nome == 'Montagem'">{{produto.DataMontagem}}</td>
          <td><button class="btn btn-default btn-xs btn-detail btn-warning" ng-click="concluir(produto.ofmItem_id, 1, setor.nome);openToast(produto);">Em Execução</button><button class="btn btn-default btn-xs btn-detail btn-danger" ng-click="concluir(produto.ofmItem_id, 2, setor.nome);openToast(produto);">Atrasado</button><button class="btn btn-default btn-xs btn-detail btn-success" ng-click="concluir(produto.ofmItem_id, 3, setor.nome);openToast(produto);">Concluir</button></td>
        </tr>
      </tbody>

Tentar explicar o que eu quero pessoal. As linhas da minha tabela são povoadas de acordo com o retorno do meu Banco de Dados e ela tem 3 botões a direita que mudam o status de cada linha da tabela, ele muda a coluna StatusEngenharia,StatusCorte... dependendo do setor que estou. Quando o usuário clica em qualquer um dos botões ele atualiza essa coluna com um dos valores(1,2,3) que é passado e cada um tem uma cor, eu queria que ele mudasse a cor do campo de acordo com o passado sem que precise dar refresh na tela, uma coisa instantânea mesmo sabe?

Muito obrigado,

Wagner

solução!

Oii Wagner, pelo que entendi é apenas uma sequencia de passos que vc tem que desenvolver com javascript mesmo.

Quando o aperta o botão, vc provavelmente já tem uma função que é executada neste botão, correto?

Esta função atualiza o banco de dados, e uma ideia é ela pode chamar logo em seguida outra função que vai alterar o estilo da <tr> em questão. Você pode usar o this do javascript para fazer isto, e passar ele como parâmetro desta função..

veja se estas ideias te dão uma luz de como fazer..

abraços!

Wagner, fiz uma função exemplo, veja se ajuda!!

https://codepen.io/vanessametonini/pen/mByrXG

Abraços, bons estudos!

Vanessa, muito obrigado pela solução e pela disposição de mostrar um exemplo pra mim, consegui fazer aqui! Muito obrigado mesmo,

Wagner