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"
9 var oSettings = oTable.fnSettings();
13 "Default should be null",
15 function () { return oSettings.fnHeaderCallback == null; }
20 "Five arguments passed",
26 $('#example').dataTable( {
27 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
28 "fnHeaderCallback": function ( ) {
29 mPass = arguments.length;
31 "fnInitComplete": function () {
36 function () { return mPass == 5 && bInit; }
40 /* The header callback is called once for the init and then when the data is added */
42 "fnHeaderCallback called once per draw",
48 $('#example').dataTable( {
49 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
50 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
53 "fnInitComplete": function () {
58 function () { return mPass == 2 && bInit; }
62 "fnRowCallback called on paging (i.e. another draw)",
63 function () { $('#example_next').click(); },
64 function () { return mPass == 3; }
69 "fnRowCallback allows us to alter row information",
72 $('#example').dataTable( {
73 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
74 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
75 nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
79 function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
84 "iStart correct on first page",
89 $('#example').dataTable( {
90 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
91 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
99 function () { return mPass; }
104 "iStart correct on second page",
106 oSession.fnRestore();
109 $('#example').dataTable( {
110 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
111 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
117 "fnInitComplete": function () {
118 $('#example_next').click();
122 function () { return mPass; }
127 "iEnd correct on second page",
129 oSession.fnRestore();
132 $('#example').dataTable( {
133 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
134 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
140 "fnInitComplete": function () {
141 $('#example_next').click();
145 function () { return mPass; }
150 "aiDisplay length is full data when not filtered",
152 oSession.fnRestore();
155 $('#example').dataTable( {
156 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
157 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
158 if ( aiDisplay.length == 57 )
165 function () { return mPass; }
169 "aiDisplay length is 9 when filtering on 'Mozilla'",
171 oSession.fnRestore();
174 oTable = $('#example').dataTable( {
175 "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
176 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
177 if ( aiDisplay.length == 9 )
183 oTable.fnFilter( "Mozilla" );
185 function () { return mPass; }