1
0
mirror of https://github.com/DataTables/DataTables.git synced 2024-12-04 16:24:11 +01:00
DataTables/media/unit_testing/tests_onhold/4_server-side/bInfiniteScroll.js
Allan Jardine fde6ba858a New: Infinite scrolling! Building on the scrolling feature set that was introduced with 1.7, you can now have DataTables do infinite scrolling (bScrollInfinite: true), where data is loaded dynamically as and when needed by the user's interaction with scrolling. Infinite scrolling can be used by all DataTables' supported data sources without modification.
New: The distance from the end of the current scrolling container before new data is added (with infinite scrolling) can be controlled with iScrollLoadGap (which is a numeric value in pixels).

New: Example (basic_init/scrolling_y_infinite.html) to show how infinite scrolling can be used.

Fixed: iDraw was not being incremented for a draw that did not use server-side processing.
2010-09-05 10:21:26 +01:00

63 lines
1.7 KiB
JavaScript
Executable File

// DATA_TEMPLATE: empty_table
oTest.fnStart( "bInfiniteScroll" );
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"bScrollInfinite": true,
"sScrollY": "200px",
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"10 rows by default",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll on 20px adds 10 rows",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnWaitTest(
"Scroll on 10px more results in the same number of rows",
function () { $('div.dataTables_scrollBody').scrollTop(30); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnWaitTest(
"Scroll to 240px adds another 10 rows",
function () { $('div.dataTables_scrollBody').scrollTop(240); },
function () { return $('#example tbody tr').length == 30; }
);
oTest.fnWaitTest(
"Filtering will drop back to 10 rows",
function () { oTable.fnFilter('gec') },
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll after filtering adds 10",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnWaitTest(
"Sorting will drop back to 10 rows",
function () { oTable.fnSort([[1,'asc']]) },
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll after sorting adds 10",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnComplete();
} );