Доступ к незагруженным узлам DataTable с опцией DeferRender

Моя проблема в том, что у меня есть таблица данных, содержащая тысячи данных, и я столкнулся с проблемами производительности в Internet Explorer 11 (я не хочу <11, и у меня нет проблем с Firefox и Chrome). Для решения проблемы производительности я добавил deferRender: true на мой dataTable, который был действительно успешным, но потом я столкнулся с другой проблемой, которую я еще не решил.

Новая проблема заключается в том, что в каждой строке моей таблицы есть флажок, а в заголовке данных есть флажок, который ставит / снимает флажки всех строк, когда по нему щелкают. Когда происходит щелчок, я извлекаю все узлы в своей таблице, выполняя var allNodes = myTable.rows().nodes() и изменить checked свойство каждой строки флажок.

Без deferRender Я извлекал все узлы, но так как у меня была эта опция, которая выполняет отложенную загрузку, я получаю только загруженные узлы (первая страница и загруженные страницы).

Итак, мой вопрос: есть ли способ сохранить патч производительности IE с ленивой загрузкой? deferRender вариант и по-прежнему иметь доступ ко всем узлам (может быть, через функцию, которую я еще не нашел) или есть другой способ улучшить производительность в IE?

Спасибо за помощь.

PS: При необходимости я добавляю свой код инициализации данных здесь:

$('#myTable').DataTable({
        ajax: {
            url: myUrl,
            contentType: 'application/json',
            type: 'POST',
            data: function (d) {
                return JSON.stringify(dataToSend);
            }
        },
        columns: [
            {
                data: 'Identifier',
                type: 'html',
                sortable: false,
                render: function (data, type, row) {
                    return '<input type="checkbox" name="checkboxRow" value="' + $('<div/>').text(data).html() + '">';
                }
            },
            {
                data: 'Mnemo',
                render: function (data, type, row) {
                    return '<a class="hand-cursor">' + $('<div/>').text(data).html() + '</a>';
                    }
            },
            { data: 'FamGam.Family' },
            { data: 'FamGam.Gamme' },
            {
                fnCreatedCell: function (nTd, oData, iRow, iCol) {
                    if (oData === 'En service') {
                        $(nTd).addClass('cell-text-green');
                    } else if (oData === 'En cours de démontage') {
                        $(nTd).addClass('cell-text-orange');
                    }
                },
                data: 'dataState.Libelle'
            },
            { data: 'IdentifierUI' },
            { data: 'TechnicalRoom.InterventionUnitySenderSite' },
            { data: 'IdentifierTechnicalRoom' },
            {
                type: 'html',
                sortable: false,
                defaultContent: '<img class="imgBtn secondBtn" ' +
                                     'src="' + urlImages + '/edit.png" ' +
                                     'alt="Editer" title="Editer" />'
            }
        ],
        deferRender: true,
        destroy: true,
        searching: true,
        retrieve: true,
        order: [1, 'asc']
});

0 ответов

Другие вопросы по тегам