// DATA_TEMPLATE: complex_header_2 oTest.fnStart( "fnSetColumnVis with complex headers" ); $(document).ready( function () { /* Check the default */ var oTable = $('#example').dataTable(); var oSettings = oTable.fnSettings(); oTest.fnTest( "All columns are visible by default", null, function () { return $('#example tbody tr:eq(0) td').length == 5; } ); oTest.fnTest( "Hide the first column", function () { $('#example').dataTable().fnSetColumnVis( 0, false ); }, function () { return $('#example tbody tr:eq(0) td').length == 4; } ); oTest.fnTest( "First cell is '2' - first column hidden", null, function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "2"; } ); oTest.fnTest( "First cell has colspan of 3", null, function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('colspan') == 3; } ); oTest.fnTest( "First cell has rowspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('rowspan') == 2; } ); oTest.fnTest( "First cell in last column is '11'", null, function () { return $('#example thead tr:eq(4) th:eq(0)').html() == 11; } ); oTest.fnTest( "First cell in last column has been truncated to one column", null, function () { return $('#example thead tr:eq(4) th:eq(0)')[0].getAttribute('colspan') == 1; } ); oTest.fnTest( "Hide the second column", function () { $('#example').dataTable().fnSetColumnVis( 0, true ); $('#example').dataTable().fnSetColumnVis( 1, false ); }, function () { return $('#example tbody tr:eq(0) td').length == 4; } ); oTest.fnTest( "First cell is '1' - second column hidden", null, function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "1"; } ); oTest.fnTest( "Second cell is '2' - second column hidden", null, function () { return $('#example thead tr:eq(0) th:eq(1)').html() == "2"; } ); oTest.fnTest( "First cell in fourth row is '10' (visibly the first) - second column hidden", null, function () { return $('#example thead tr:eq(3) th:eq(0)').html() == "10"; } ); oTest.fnTest( "First cell has colspan of 1", null, function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('colspan') == 1; } ); oTest.fnTest( "Second cell has colspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('colspan') == 2; } ); oTest.fnTest( "First cell has rowspan of 1", null, function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('rowspan') == 1; } ); oTest.fnTest( "Second cell has rowspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('rowspan') == 2; } ); oTest.fnTest( "First cell in last column is '11'", null, function () { return $('#example thead tr:eq(4) th:eq(0)').html() == 11; } ); oTest.fnTest( "First cell in last column has been truncated to one column", null, function () { return $('#example thead tr:eq(4) th:eq(0)')[0].getAttribute('colspan') == 1; } ); oTest.fnTest( "Hide the first two columns", function () { $('#example').dataTable().fnSetColumnVis( 0, false ); $('#example').dataTable().fnSetColumnVis( 1, false ); }, function () { return $('#example tbody tr:eq(0) td').length == 3; } ); oTest.fnTest( "First cell is '2' - first two columns hidden", null, function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "2"; } ); oTest.fnTest( "Second cell is '3' - first two columns hidden", null, function () { return $('#example thead tr:eq(0) th:eq(1)').html() == "3"; } ); oTest.fnTest( "First cell in third row is '6' - first two columns hidden", null, function () { return $('#example thead tr:eq(2) th:eq(0)').html() == "6"; } ); oTest.fnTest( "First cell has colspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('colspan') == 2; } ); oTest.fnTest( "First cell has rowspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('rowspan') == 2; } ); oTest.fnTest( "Second cell has rowspan of 1", null, function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('rowspan') == 1; } ); oTest.fnTest( "First cell in last column is '12'", null, function () { return $('#example thead tr:eq(4) th:eq(0)').html() == 12; } ); oTest.fnTest( "Hide the third column", function () { $('#example').dataTable().fnSetColumnVis( 0, true ); $('#example').dataTable().fnSetColumnVis( 1, true ); $('#example').dataTable().fnSetColumnVis( 2, false ); }, function () { return $('#example tbody tr:eq(0) td').length == 4; } ); oTest.fnTest( "First cell is '1' - third column hidden", null, function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "1"; } ); oTest.fnTest( "Second cell is '2' - third column hidden", null, function () { return $('#example thead tr:eq(0) th:eq(1)').html() == "2"; } ); oTest.fnTest( "First cell (visible second) in third row is '6' - third column hidden", null, function () { return $('#example thead tr:eq(2) th:eq(0)').html() == "6"; } ); oTest.fnTest( "Second cell has colspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('colspan') == 2; } ); oTest.fnTest( "Second cell has rowspan of 2", null, function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('rowspan') == 2; } ); oTest.fnTest( "Third row first cell (second visible) colspan is 1", null, function () { return $('#example thead tr:eq(2) th:eq(0)')[0].getAttribute('colspan') == 1; } ); oTest.fnTest( "Third row second cell (third visible) value is 7", null, function () { return $('#example thead tr:eq(2) th:eq(1)').html() == "7"; } ); oTest.fnTest( "Third row second cell (third visible) colspan is 1", null, function () { return $('#example thead tr:eq(2) th:eq(1)')[0].getAttribute('colspan') == 1; } ); oTest.fnTest( "Third row second cell (third visible) rowspan is 3", null, function () { return $('#example thead tr:eq(2) th:eq(1)')[0].getAttribute('rowspan') == 3; } ); oTest.fnComplete(); } );