Datatables - передаваемые переменные - PullRequest
0 голосов
/ 21 марта 2012

У меня есть сайт с таблицами данных, на котором есть информация о заказах клиентов - имя клиента, сроки выполнения, номер заказа клиента и т. Д. В одном столбце указан номер работы моей организации. Когда я дважды щелкаю по столбцу с номером работы в нужной строке, появляется другая страница - Approval.php. У меня проблема с передачей информации из строки с двойным щелчком на новую страницу.

Вот мой код:

var oTable
oTable = $('#runsheet').dataTable({
    "sDom": '<"clear"><"H"lfrC>t<"F"i>',
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "modules/runsheet/runsheet_objects.php",
    "bJQueryUI": true,
    "aoColumns": [
        { "mDataProp": "Job_No", "sClass": "clicknumber center", "sWidth": "50px" },
.....

Позже у меня есть этот код, который вызывает страницу Appro.php

    $(".clicknumber").live('dblclick',function(event){
    event.preventDefault();
    window.location = 'approval.php';
})

Когда я изменяю этот код на

    $(".clicknumber").live('dblclick',function(event){
    event.preventDefault();
    var nTr = this.parentNode.parentNode;
    var aData = oTable.fnGetData( nTr );
    window.location = 'approval.php?customer='+ aData.Customer + 'job_no =' + aData.Job_no;
})

Я получаю, что в Firebug ноль данных.

В других местах aData работает, так как этот код правильно показывает номер задания в развернутой строке:

function fnFormatDetails ( nTr ) {
var aData = oTable.fnGetData( nTr );
var sOut = '<div class="innerDetails">';
sOut += '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
sOut += '<tr><td>Job No:</td><td>'+aData.Job_No+'</td></tr>';
sOut += '</table>';
sOut += '</div>';           
return sOut; }

Может кто-нибудь помочь мне исправить код $ (". Clicknumber"). Live ('dblclick', код функции (события).

Большое спасибо, Bandan88

Ответы [ 2 ]

0 голосов
/ 27 июля 2016

DataTables v 1.10.8 + имеет встроенную функцию row (). Id () для получения идентификатора строки.

Если вы назначите класс своим строкам:

<tr class="clickable" id="1">

Вы можете привязать событие клика и получить идентификатор строки:

var dt = $('table').DataTable();

$('.clickable').on('click', function() {
  var id = dt.row(this).id();
  console.log('You clicked on rowId ' + id);
});

Вот демоверсия Fiddle .

0 голосов
/ 22 марта 2012

Решил это. Я использовал это:
var nTr = this.parentnode.

Благодаря Грег , Бандан88

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