click em table e carregar as informações na tela

09/10/2014

0

Essa é minha table:

<div class="col-md-13">
        <table data-url="data1.json" data-height="500" data-sort-name="name" data-sort-order="desc" class="table table-striped table-bordered">
            <thead>
                <tr>
                    <th data-field="id" data-align="center" data-sortable="true">Nível Acesso</th>
                    <th data-field="name" data-align="center" data-sortable="true">Nome</th>
                    <th data-field="price" data-align="center" data-sortable="true">Usuário</th>
                </tr>
            </thead>

            <tbody id="nmUsuario"></tbody>
        </table>
    </div>

Não consigo o evento doubleclick e passar a linha selecionada como parâmetro para a controller via jquery. Esse é meu esqueleto jquery.

function ConsultarAcesso() {

    str = "";

    $.ajax({

        url: '/CadastroAcesso/ConsultaAcesso',
        datatype: 'json',
        contentType: 'application/json;charset=utf-8',
        type: 'POST',
        data: JSON.stringify({  }),
        success: function (data) {
        },
        error: function (error) {

        }
    })
}
Pjava

Pjava

Responder

Posts

09/10/2014

Pjava

Rodei isso no fiddle e funcionou.

<div id="divDb" class="teste" style="background-color: green; color: white; font-size: 30px;">
Duplo clique aqui e vai funcionar!
</div>

$(document).ready(function () {
    $(".teste").dblclick(function () {
         alert("Alô Paulão, Funcionou!");        
    });
});

Fiz isso em meu projeto e nada.

function AtualizaTabela() {

    str = "";

    $.ajax({

        url: '/CadastroAcesso/AtualizaTabelaUsuario',
        datatype: 'json',
        contentType: 'application/json;charset=utf-8',
        type: 'POST',
        data: JSON.stringify({}),
        success: function (data) {

            $(data.result_usu).each(function () {

                str += '<tr>';
                str += '<td data-field="id" class="col-md-4 clique">' + this.Nivel_Acesso1 + '</td>';
                str += '<td data-field="name" class="col-md-4 clique">' + this.NM_Usuario + '</td>';
                str += '<td data-field="price" class="col-md-4 clique">' + this.Usuario1 + '</td>';
                str += '</tr>';
            })

            $('#nmUsuario').html(str);
            str = "";

        },
        error: function (error) {

        }
    })
}
$(document).ready(function () {
    AtualizaTabela();

    $(".clique").dblclick(function () {
        alert("Alô Paulão, Funcionou!");
    });
})
Responder

10/10/2014

Pjava

Criei essa table no fiddle e atribui a classe ao jquery funcionou, mas no meu projeto não. O problema acho, está aqui> $(document).ready(function.... Pois nada do que faço em qualquer parte do meu projeto, funciona essa função. Não sei o que está de errado. O jquery.2.1.0.min.js está incluso na página layout. Mas eu também chamei direto da página herdada e não funcionou. Só para acrescentar.

http://fiddle.jshell.net/pnet/3xckdycm/
Responder

10/10/2014

Pjava

Comecei a descobri algumas coisas. Quando a página é carregada, pelo debug, vi que a função jquery é chamada. Após o documento está totalmente carregado, aí, mesmo clicando na <td> não é chamado mais a função e o dblclick perde sua operacionalidade.
Responder

10/10/2014

Joel Rodrigues

Coloque este código dentro da função success da chamada Ajax:

$(".clique").dblclick(function () {
        alert("Alô Paulão, Funcionou!");
    });
Responder

16/10/2014

Pjava

Resolvi da seguinte forma. Criei uma função para o duplo clique e chamo em cada duplo clique nas <td>. Dessa forma funcionou. Ao invés de usar o document.ready eu usei uma função sendo chamada de dentro da tag <td> assim. A função se chama duploclique.



$(data.result_usu).each(function () {
    
                    str += '<tr>';
                    str += '<td data-field="id" class="col-md-4 clique" onclick=" return duploclique();">' + this.Nivel_Acesso1 + '</td>';
                    str += '<td data-field="name" class="col-md-4 clique" onclick=" return duploclique();>' + this.NM_Usuario + '</td>';
                    str += '<td data-field="price" class="col-md-4 clique" onclick=" return duploclique();>' + this.Usuario1 + '</td>';
                    str += '</tr>';
                })
Responder

16/10/2014

Pjava

Mudei para essa forma e funcionou, mas não consigo entrar no sucesso do ajax.

$('#nmUsuario').on("dblclick", '.clique', function() {

    alert('Alô, tudo bem?');

    var obj = {};

    $('tr').each(function () {
        obj = {
            _nivel: $(this).find('td').eq(0).text, 
            _nome: $(this).find('td').eq(1).text, 
            _usuario: $(this).find('td').eq(2).text
        }
    })

    $.ajax({

            url: '/CadastroAcesso/CarregaDadosPagina',
            datatype: 'json',
            contentType: 'application/json;charset=utf-8',
            type: 'POST',
            data: obj,
            success: function(data){
                alert('Alô, tudo bem 1?');
            },
            error: function(error){
            }
        })
})
Responder

23/10/2014

Pjava

O que não consigo é pegar o valor da tag <TD> e enviar para o meu método na controller.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar