数据表 - 传递变量

时间:2012-03-20 22:26:15

标签: datatables

我有一个数据表网站,其中包含有关客户订单的信息 - 客户名称,截止日期,客户订单号等。一列是我的组织的工作号码。当我双击所需行中的作业编号列时,会显示另一个页面 - 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" },
.....

稍后我会使用此代码调出approval.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为null。

在其他地方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 :(得分:0)

解决了它。我用过这个:
var nTr = this.parentnode.

感谢Greg,Bandan88

答案 1 :(得分:0)

DataTables v 1.10.8 +有一个内置函数row().id(),用于检索行ID。

如果您为行指定了一个类:

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

您可以绑定click事件并获取行ID:

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

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

这是Fiddle Demo