我有一个on click函数,用于在控制台日志中存储行数据
如果单击前两列,您会注意到该函数返回undefined,但是任何未冻结的列都会返回数据对象
我知道这有一个事实,就是在一个克隆表中创建了fixedcolumns,我想知道是否有任何解决方法吗?
// Server-side processing with object sourced data
var $table;
$(document).ready(function() {
$table = $('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "/ssp/objects.php",
dom: "<'row'<'col-md-6 'l><'col-md-6 pull-right'>r>t<'row'<'col-md-6'i><'col-md-6'p>>",
"columns": [
{ "data": "first_name" },
{ "data": "last_name" },
{ "data": "position" },
{ "data": "office" },
{ "data": "start_date" },
{ "data": "salary" }
],
scrollY: "600px",
scrollX: "100%",
scrollCollapse: true,
"pageLength": 5,
lengthMenu: [[5, 10, 25, 50 ], [5, 10, 25, 50]],
order: [[ 1, "asc" ]],
} );
new $.fn.dataTable.FixedColumns( $table, {
leftColumns: 2
} );
$table.on("click", "tr",function(){
var aData = $table.row( this ).data();
console.log( aData);
} );
} );
答案 0 :(得分:2)
您可以使用fnGetPosition获取有关行索引的信息。
从手册:
此功能在功能上与
fnGetPosition
相同 DataTables,采用相同的参数(TH,TD或TR节点)和 完全返回相同的信息(数据索引信息)。 两者之间的区别在于此方法需要考虑 表中的固定列,因此您可以从中传入节点 主表,或克隆表并获取索引位置 主表中的数据。
您的代码需要修改如下:
var fc = new $.fn.dataTable.FixedColumns( $table, {
leftColumns: 2
});
$table.on("click", "tr", function(){
var aData = $table.row(fc.fnGetPosition(this)).data();
console.log(aData);
});
请参阅此example code进行演示。