2016-08-18 2 views
0

Я не понимаю, что не так с этой реализацией. Обратите внимание, что мои данные «empty-ish», поскольку я планирую создавать созданные ячейки на основе их координат строк/столбцов. Поэтому я передаю фиктивный массив и возвращаю содержимое в обратном вызове render().Datatables deferRender не откладывается

В журнале консоли вы увидите createdCell() 100 * 100 раз ... Созданный html также согласен.

var size = 100 
 
var zeroes = new Uint8Array(size) 
 
var data = _.range(size).map(function() { 
 
    return zeroes 
 
}) 
 
var cells = 0 
 
var rows = 0 
 
var config = { 
 
    autoWidth: false, 
 
    paging: false, // Disable Paging         
 
    ordering: true, // Sortable columns         
 
    info: false, // Disable 'showing x of x entries'     
 
    data: data, 
 
    deferRender: true, 
 
    processing: true, 
 
    createdRow: function(cell, data, dataIndex) { 
 
    rows += 1 
 
    }, 
 
    columnDefs: [{ 
 
    targets: _.range(size), 
 
    title: 'Title', 
 
    render: function(data, type, row, meta) { 
 
     return meta.col * meta.row 
 
    }, 
 
    createdCell: function(cell, cellData, rowData, rowIndex, colIndex) { 
 
     cells += 1 
 
    }, 
 
    }], 
 
} 
 
var dataTable = $('#dashboard-table').DataTable(config) 
 
console.log("Rows: " + rows) 
 
console.log("Cells: " + cells)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.12/js/jquery.dataTables.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 

 
<link href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.12/css/jquery.dataTables.min.css" rel="stylesheet"/> 
 

 
<table className="table table-compressed" id="dashboard-table"> 
 
</table>

Вот скрипка, а также:

https://jsfiddle.net/rrauenza/x5nj7qgt/

Почему это не откладывая создание клеток?

ответ

1

А, кажется, я вижу, что происходит. deferRender работает только в том случае, если paging=true в конфигурации и откладывает дополнительную страницу.

Плагин Datatables Scroller может быть ближе к ожидаемому.

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