1 // DATA_TEMPLATE: empty_table
2 oTest.fnStart( "fnRowCallback" );
4 /* Note - fnRowCallback MUST return the first arguments (modified or not) */
6 $(document).ready( function () {
7 /* Check the default */
8 var oTable = $('#example').dataTable( {
9 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
11 { "mData": "engine" },
12 { "mData": "browser" },
13 { "mData": "platform" },
14 { "mData": "version" },
18 var oSettings = oTable.fnSettings();
22 "Default should be null",
24 function () { return oSettings.fnRowCallback == null; }
29 "Four arguments passed",
34 $('#example').dataTable( {
35 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
37 { "mData": "engine", "aTargets": [0] },
38 { "mData": "browser", "aTargets": [1] },
39 { "mData": "platform", "aTargets": [2] },
40 { "mData": "version", "aTargets": [3] },
41 { "mData": "grade", "aTargets": [4] }
43 "fnRowCallback": function ( nTr ) {
44 mPass = arguments.length;
49 function () { return mPass == 4; }
54 "fnRowCallback called once for each drawn row",
59 $('#example').dataTable( {
60 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
62 { "mData": "engine", "aTargets": [0] },
63 { "mData": "browser", "aTargets": [1] },
64 { "mData": "platform", "aTargets": [2] },
65 { "mData": "version", "aTargets": [3] },
66 { "mData": "grade", "aTargets": [4] }
68 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
74 function () { return mPass == 10; }
78 "fnRowCallback allows us to alter row information",
81 $('#example').dataTable( {
82 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
84 { "mData": "engine", "aTargets": [0] },
85 { "mData": "browser", "aTargets": [1] },
86 { "mData": "platform", "aTargets": [2] },
87 { "mData": "version", "aTargets": [3] },
88 { "mData": "grade", "aTargets": [4] }
90 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
91 $(nTr).addClass('unit_test');
96 function () { return $('#example tbody tr:eq(1)').hasClass('unit_test'); }
100 "Data array has length matching columns",
102 oSession.fnRestore();
105 $('#example').dataTable( {
106 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
108 { "mData": "engine", "aTargets": [0] },
109 { "mData": "browser", "aTargets": [1] },
110 { "mData": "platform", "aTargets": [2] },
111 { "mData": "version", "aTargets": [3] },
112 { "mData": "grade", "aTargets": [4] }
114 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
115 if ( asData.length != 5 )
121 function () { return mPass; }
125 "Data array has length matching columns",
127 oSession.fnRestore();
131 $('#example').dataTable( {
132 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
134 { "mData": "engine", "aTargets": [0] },
135 { "mData": "browser", "aTargets": [1] },
136 { "mData": "platform", "aTargets": [2] },
137 { "mData": "version", "aTargets": [3] },
138 { "mData": "grade", "aTargets": [4] }
140 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
141 if ( iCount != iDrawIndex )
148 function () { return mPass; }