Problema ao capturar valores da linha de uma Datatable

Tenho a seguinte função para pegar as informações de uma linha no meu Datatable.

$(".linha-tabela").on("click", function(){

alert("Chegou na Funcao - linha-tabela");

console.log(myTable.selectedRows())

var linhaSelecionada = myTable.selectedRows()[0];

console.log(myTable.selectedRows()[0]);

var linha = myTable.getRow(linhaSelecionada);

alert("Pedido: " + linha.PEDIDO);

$("#solicitante").val(linha.SOLICITANTE);

});`

Consigo chegar na função. Porém nos campos linhaSelecionada está sendo retornado [] (lista vazia).

E consequentemente no campo linha vem com valor undefined.

Gostaria que me ajudassem a entender onde estou errando nessa chamada. Pois em todas as documentações que vi, a chamada é feita dessa maneira.

Bom dia Alessandro,

essa classe "linha-tabela" está na tr da table?

Tente uma das opções abaixo:


// Busca pela classe

$('#id-da-tabela').on('click', '.linha-tabela', function() {
    var linhaSelecionada = myTable.selectedRows()[0];
    var linha = myTable.getRow(linhaSelecionada);
    console.log(linha);
});

// Ou use a busca pelo tr direto

$('#id-da-tabela').on('click', 'tr', function() {
    var linhaSelecionada = myTable.selectedRows()[0];
    var linha = myTable.getRow(linhaSelecionada);
    console.log(linha);
});

Sim, a classe linha-tabela está na tr.
Irei tentar suas opções e já já respondo aqui.

Diogo, teste das duas maneiras e retornou o mesmo resultado.
linhaSelecionada veio nulo, linha veio como undefined.
Eu preciso declarar esse myTable em algum lugar do meu código JavaScript ?

O myTable eu peguei do seu código ali acima, mas é a variável contendo a instancia da datatable que vc criou, tipo: var myTable = FLUIGC.datatable(‘#id-da-tabela’, { objeto com as propriedades da tabela }); TOTVS Fluig Developer

Meu script está seguindo o padrão da documentação, porém, quando chamo o selectedRows()[0], ele está vindo nulo e consequentemente quando chamo o getRow ele não tras nada e fica undefined.
Estou revisando o código mas não consigo achar onde pode estar o erro ou o que está faltando para ele pegar as informações da linha da tabela.

O que retorna se você colocar console.log(myTable)?

Retorno do console.log(myTable):

{addPage: ƒ, reload: ƒ, addRow: ƒ, removeRow: ƒ, removeRows: ƒ, …}
addPage
:
ƒ (a,b,c)
addRow
:
ƒ (a,b,c)
destroy
:
ƒ ()
dragInfo
:
ƒ ()
getClassSelected
:
ƒ ()
getData
:
ƒ ()
getRow
:
ƒ (a,b)
hideColumn
:
ƒ (a)
hideLoading
:
ƒ ()
nextPage
:
ƒ (a,b)
on
:
ƒ (a,b)
reload
:
ƒ (a,b)
removeRow
:
ƒ (a)
removeRows
:
ƒ (a)
selectedRows
:
ƒ ()
showColumn
:
ƒ (a)
showColumns
:
ƒ ()
showLoading
:
ƒ (a)
updateRow
:
ƒ (a,b,c)
proto
:
Object

$(‘#id-da-tabela’).on(‘click’, ‘.linha-tabela’, function() {
console.log($(this).index());
console.log(myTable.getRow($(this).index()));
});

Diogo, muito obrigado pela resposta, o código que você enviou funcionou,já consigo tratar as informações e usá-las.

Tire só uma dúvida, porque teve que ficar assim $(this).index() e não como está na maioria dos exemplos ?

Para constar o código que funcionou:

`$('#id-da-tabela').on('click', 'tr', function() {

console.log($(this).index());

console.log(myTable.getRow($(this).index()));

var linhaSelecionada = $(this).index();

var linha = myTable.getRow(linhaSelecionada);

});`

Normalmente eu uso pegando o index, mas também deveria funcionar da forma como está nos exemplos. Só olhando o seu código pra ver se tem algo que impede o funcionamento.