1 // DATA_TEMPLATE: empty_table
2 oTest.fnStart( "fnHeaderCallback" );
4 $(document).ready( function () {
5 /* Check the default */
6 var oTable = $('#example').dataTable( {
7 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
10 var oSettings = oTable.fnSettings();
14 "Default should be null",
16 function () { return oSettings.fnHeaderCallback == null; }
21 "Five arguments passed",
27 $('#example').dataTable( {
28 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
30 "fnHeaderCallback": function ( ) {
31 mPass = arguments.length;
33 "fnInitComplete": function () {
38 function () { return mPass == 5 && bInit; }
42 /* The header callback is called once for the init and then when the data is added */
44 "fnHeaderCallback called once per draw",
50 $('#example').dataTable( {
51 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
53 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
56 "fnInitComplete": function () {
61 function () { return mPass == 2 && bInit; }
65 "fnRowCallback called on paging (i.e. another draw)",
66 function () { $('#example_next').click(); },
67 function () { return mPass == 3; }
72 "fnRowCallback allows us to alter row information",
75 $('#example').dataTable( {
76 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
78 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
79 nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
83 function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
88 "iStart correct on first page",
93 $('#example').dataTable( {
94 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
96 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
104 function () { return mPass; }
109 "iStart correct on second page",
111 oSession.fnRestore();
114 $('#example').dataTable( {
115 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
116 "bDeferRender": true,
117 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
123 "fnInitComplete": function () {
124 $('#example_next').click();
128 function () { return mPass; }
133 "iEnd correct on second page",
135 oSession.fnRestore();
138 $('#example').dataTable( {
139 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
140 "bDeferRender": true,
141 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
147 "fnInitComplete": function () {
148 $('#example_next').click();
152 function () { return mPass; }
157 "aiDisplay length is full data when not filtered",
159 oSession.fnRestore();
162 $('#example').dataTable( {
163 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
164 "bDeferRender": true,
165 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
166 if ( aiDisplay.length == 57 )
173 function () { return mPass; }
177 "aiDisplay length is 9 when filtering on 'Mozilla'",
179 oSession.fnRestore();
182 oTable = $('#example').dataTable( {
183 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
184 "bDeferRender": true,
185 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
186 if ( aiDisplay.length == 9 )
192 oTable.fnFilter( "Mozilla" );
194 function () { return mPass; }