1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | // DATA_TEMPLATE: dom_data oTest.fnStart( "aoColumns.bUseRendered" ); /* bUseRendered is used to alter sorting data, if false then the original data is used for * sorting rather than the rendered data */ $(document).ready( function () { /* Check the default */ var mTmp = 0; var oTable = $('#example').dataTable( { "aoColumns": [ null, { "fnRender": function (a) { if ( mTmp == 0 ) { mTmp++; return "aaa"; } else return a.aData[a.iDataColumn]; } }, null, null, null ] } ); var oSettings = oTable.fnSettings(); oTest.fnTest( "Default for bUseRendered is true - rendered data is used for sorting", function () { $('#example thead th:eq(1)').click(); }, function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'aaa'; } ); oTest.fnTest( "When bUseRendered is false, original data is used for sorting", function () { mTmp = 0; oSession.fnRestore(); oTable = $('#example').dataTable( { "aoColumns": [ null, { "bUseRendered": false, "fnRender": function (a) { if ( mTmp == 0 ) { mTmp++; return "aaa"; } else { return a.aData[a.iDataColumn]; } } }, null, null, null ] } ); $('#example thead th:eq(1)').click(); }, function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; } ); oTest.fnTest( "bUseRendered set to false on one columns and true (default) on two others", function () { mTmp = 0; var mTmp2 = 0; var mTmp3 = 0; oSession.fnRestore(); oTable = $('#example').dataTable( { "aoColumns": [ { "fnRender": function (a) { if ( mTmp == 0 ) { mTmp++; return "aaa1"; } else { return a.aData[a.iDataColumn]; } } }, { "bUseRendered": false, "fnRender": function (a) { if ( mTmp2 == 0 ) { mTmp2++; return "aaa2"; } else { return a.aData[a.iDataColumn]; } } }, { "fnRender": function (a) { if ( mTmp3 == 0 ) { mTmp3++; return "zzz3"; } else { return a.aData[a.iDataColumn]; } } }, null, null ] } ); }, function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'aaa1'; } ); oTest.fnTest( "Multi-column rendering - 2nd column sorting", function () { $('#example thead th:eq(1)').click(); }, function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; } ); oTest.fnTest( "Multi-column rendering - 3rd column sorting", function () { $('#example thead th:eq(2)').click(); $('#example thead th:eq(2)').click(); }, function () { return $('#example tbody tr:eq(0) td:eq(2)').html() == 'zzz3'; } ); oTest.fnTest( "Multi-column rendering - 4th column sorting", function () { $('#example thead th:eq(3)').click(); }, function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == '-'; } ); oTest.fnTest( "Multi-column rendering - 5th column sorting", function () { $('#example thead th:eq(4)').click(); }, function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; } ); oTest.fnComplete(); } ); |