2017-06-23 44 views
0

我似乎无法弄清楚我的问题是通过Datatables Jquery呈现此链接。在数据表中显示链接问题

我的数据集出来这样

*/ Code to get data /* ....... 
pre.push(category, bdate, title, host, loc, 'Details' , sumcomms, auth, edate, ID, body, created, modified); 
        dataSet[i] = pre; 
*/ End code to get data /* ....... 

我知道这是正确的,因为我实际上可以创建表,并看到它。但是,在代码中的下一位返回空白单元格渲染部分...

$('#FTable').DataTable({ 
        data: dataSet, 
        bProcessing: true, 
        iDisplayLength: 25, 
        columnDefs: [ 

         /******* ISSUE HERE *******/ 
         { 
          targets: [5], 
          render: function(data, type, row, meta) { 
           data = '<button class="btn" onlick="create_dModal(' + row[9] + row[0], row[10], row[1], row[3], row[4], row[7], row[2], row[12] + ')"> Display </button>'; 
           return data; 
          } 
         }, 

         { 
          targets: [9], 
          visible: false, 
          searchable: false 
         }, 
         { 
          targets: [10], 
          visible: false, 
          searchable: false 
         }, 
         { 
          targets: [11], 
          visible: false, 
          searchable: false 
         }, 

        ], 

        columns: [{ 
          title: "Category" 
         }, 
         { 
          title: "Date" 
         }, 
         { 
          title: "Title" 
         }, 
         { 
          title: "Host" 
         }, 
         { 
          title: "Location" 
         }, 
         { 
          title: "Details", 

          type: "display", 

         }, 
         { 
          title: "Comments" 
         }, 
         { 
          title: "Posted By" 
         }, 
         { 
          title: "End Date" 
         }, 
         { 
          title: "ID" 
         }, 
         { 
          title: "Details (full)" 
         }, 
         { 
          title: "Created Date" 
         }, 
         { 
          title: "Last Modified" 
         } 

        ], 

       }); 
+0

不知道,但如果可以使用columnDefs和列。尝试把columnDefs中的内容放入列初始化程序 – Simon

+0

而不是尝试重新定义数据。尝试返回''; – Bindrid

+0

@bindrid我测试了它,它似乎没有工作 – ovp

回答

0

说了这一切,这是我真正做(因为数据表要求的jQuery,该解决方案主要是在jQuery中)。

如下所示:http://live.datatables.net/gavivefo/1/edit

$(document).ready(function() { 
    var table = $('#example').DataTable({ 
    columnDefs:[{targets:[-1], render:function(data,type,row, meta){ 
     return '<button type="button">Display</button>'; 
    }}] 
}); 

    $('#example').on("click", "button", function(){ 
     var row = $(this).closest("tr"); 
     var rowData = $("#example").DataTable().rows(row).data()[0]; 
     create_dModal(rowData); 


    }) 
}); 

function create_dModal(data){ 

    alert("Name:" + data[0] + "\nPosition:" + data[1] + "\nOffice:" + data[2]); 
} 
0

我不能告诉值为数字等为参数的缘故,让我们假装什么是字符串0,9 4个是字符串,其他的都是数字。然后渲染会是什么样子......

var r = '<button type="button" onclick="create_dModal('; 
// assuming 9 and 0 are strings 
// your commas in quotes cause you are making a string 
r += '"' + row[9] + row[0] + "', "; 
// now the rest of the values as numbers 
// (you could do this all on one like but I did the += stuff for clarity) 
r += row[10] + ', '; 
r += row[1] + ', '; 
r += row[3] + ', '; 
r += row[4] + ', '; 
r += row[7] + ', '; 
r += row[2] + ', '; 
r += row[12]; 
r += ')">Display</button>'; 

return r; 

您的功能看起来像

function create_dModal(str_9_0, num_10, num_1, num_3, num_4, num_7, num_2, num_12)