2015-05-29 3 views
2

У меня есть на функции мыши хранения данных строки в логе консолиDataTables с fixedheader: строка функция нажмите дает ошибку на фиксированных перевалах

, если нажать на первых два колонках, вы заметите, что функция возвращает неопределенное значение , однако любая из незамороженных столбцов возвращает объект данных

Я знаю, что это связано с тем фактом, что фиксированные столбцы создаются в клонированной таблице, мне было интересно, существует ли какое-либо обходное решение для этого?

// 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); 
    }); 
}); 

here is my example code in action

ответ

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 для демонстрации.

+0

Я смотрел навсегда для этого, даже спросил на их официальных форумах, и ценю, что вы его нашли, спасибо много –

 Смежные вопросы

  • Нет связанных вопросов^_^