Данные бесконечной прокрутки развернутых строк недоступны в DOM

#javascript #jquery #dom #jquery-datatables

#javascript #jquery #dom #jquery-datatables

Вопрос:

Я создаю DataTable с бесконечной прокруткой как

 $('#table1').dataTable({
    'aaData' : dataArr,
    'aoColumns': columnArr,
    'bScrollInfinite': true,
    'bColumnCollapse': true,
    'sScrollY': '200px',
    'iDisplayLength': 20,
    'bAutoWidth': false
});
 

Теперь, когда это загружено, у него есть сообщение "Showing 1 - 20 of 1000" .

В инспекторе Chrome я вижу только 20 строк в таблице. Остальные становятся доступными только после прокрутки до нижней части таблицы, остальные строки отображаются в DOM.

Есть ли способ, которым мы можем сделать так, чтобы все строки отображались в DOM без прокрутки?

Комментарии:

1. Весь смысл бесконечной прокрутки заключается в том, чтобы избежать загрузки 1000 строк, если пользователь не прокручивает их. Вы не можете создать 1000 строк DOM без загрузки данных для них, что противоречит цели бесконечной прокрутки.

2. Моя цель — добавить строки в нижнюю часть таблицы (с бесконечной прокруткой) и выполнить над ними манипуляции с DOM. В приведенном выше сценарии я не могу получить доступ к нижним строкам, если пользователь вручную не прокручивает нижнюю часть таблицы. Есть ли способ, которым я могу автоматически прокручивать до конца таблицы?

3. Если вам нужно манипулировать ими, почему вы просто не загрузили их изначально (загрузив более 20 строк)?

4. Я хочу отобразить всего 20 строк в пользовательском интерфейсе, но мне нужно найти какой-то способ, чтобы DataTable автоматически прокручивался до нижней строки.

Ответ №1:

http://legacy.datatables.net/usage/options

добавьте другое свойство, вызываемое :

 'iDisplayLength ' : 1000
 

не уверен, что отобразит все результаты для вас, когда результатов будет больше 1000, но вы можете попробовать передать 0 или -1, вероятно, это должно сработать.
если нет, просто вставьте значение int.max .

Комментарии:

1. Но при этом будут отображаться все 1000 строк. Это сведет на нет цель бесконечной прокрутки. Есть ли способ заставить DataTable автоматически прокручиваться до нижних строк?

2. у меня вопрос, почему бы не заказать по убыванию? это будет намного удобнее для пользователя, чем прокрутка 1000 строк