1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv="content-type" content="text/html; charset=utf-8">
5 <link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico">
7 <title>FixedColumns example</title>
8 <style type="text/css" title="currentStyle">
9 @import "../../media/css/demo_page.css";
10 @import "../../media/css/demo_table.css";
11 .FixedColumns_Cloned th { background-color: white; }
12 td.index { background-color: white; border-right: 1px solid black; }
13 table.display th.sorting_disabled { border-bottom: 1px solid white; }
15 <script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script>
16 <script type="text/javascript" charset="utf-8" src="../../media/js/jquery.dataTables.js"></script>
17 <script type="text/javascript" charset="utf-8" src="media/js/FixedColumns.js"></script>
18 <script type="text/javascript" charset="utf-8">
19 $(document).ready( function () {
20 var oTable = $('#example').dataTable( {
23 "sScrollXInner": "150%",
24 "bScrollCollapse": true,
26 "aaSortingFixed": [ [1, 'asc'] ],
28 { "bVisible": false, "aTargets": [1] }
32 new FixedColumns( oTable, {
33 "fnDrawCallback": function ( left, right ) {
34 var oSettings = oTable.fnSettings();
35 if ( oSettings.aiDisplay.length == 0 )
40 var nGroup, nCell, iIndex, sGroup;
41 var sLastGroup = "", iCorrector=0;
42 var nTrs = $('#example tbody tr');
43 var iColspan = nTrs[0].getElementsByTagName('td').length;
45 for ( var i=0 ; i<nTrs.length ; i++ )
47 iIndex = oSettings._iDisplayStart + i;
48 sGroup = oSettings.aoData[ oSettings.aiDisplay[iIndex] ]._aData[1] ;
50 if ( sGroup != sLastGroup )
52 /* Cell to insert into main table */
53 nGroup = document.createElement( 'tr' );
54 nCell = document.createElement( 'td' );
55 nCell.colSpan = iColspan;
56 nCell.className = "group";
57 nCell.innerHTML = " ";
58 nGroup.appendChild( nCell );
59 nTrs[i].parentNode.insertBefore( nGroup, nTrs[i] );
61 /* Cell to insert into the frozen columns */
62 nGroup = document.createElement( 'tr' );
63 nCell = document.createElement( 'td' );
64 nCell.className = "group";
65 nCell.innerHTML = sGroup;
66 nGroup.appendChild( nCell );
67 $(nGroup).insertBefore( $('tbody tr:eq('+(i+iCorrector)+')', left.body)[0] );
78 <body id="dt_example">
80 <div class="full_width big">
81 FixedColumns example - row grouping
85 <p>This example is designed to re-implement the visual effect of the DataTables <a href="http://datatables.net/examples/advanced_init/row_grouping.html">row grouping example</a> with a fixed column. It is alternative row grouping style to that presented in the <a href="grouping.html">row grouping by height</a> example.</p>
89 <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
93 <th>Rendering engine</th>
95 <th>Engine version</th>
105 <td class="center">4</td>
106 <td class="center">X</td>
113 <td class="center">5</td>
114 <td class="center">C</td>
121 <td class="center">5.5</td>
122 <td class="center">A</td>
129 <td class="center">6</td>
130 <td class="center">A</td>
133 <td>Internet Explorer 7</td>
136 <td class="center">7</td>
137 <td class="center">A</td>
140 <td>AOL browser (AOL desktop)</td>
143 <td class="center">6</td>
144 <td class="center">A</td>
149 <td>Win 98+ / OSX.2+</td>
150 <td class="center">1.7</td>
151 <td class="center">A</td>
156 <td>Win 98+ / OSX.2+</td>
157 <td class="center">1.8</td>
158 <td class="center">A</td>
163 <td>Win 98+ / OSX.2+</td>
164 <td class="center">1.8</td>
165 <td class="center">A</td>
170 <td>Win 2k+ / OSX.3+</td>
171 <td class="center">1.9</td>
172 <td class="center">A</td>
178 <td class="center">1.8</td>
179 <td class="center">A</td>
185 <td class="center">1.8</td>
186 <td class="center">A</td>
189 <td>Netscape 7.2</td>
191 <td>Win 95+ / Mac OS 8.6-9.2</td>
192 <td class="center">1.7</td>
193 <td class="center">A</td>
196 <td>Netscape Browser 8</td>
199 <td class="center">1.7</td>
200 <td class="center">A</td>
203 <td>Netscape Navigator 9</td>
205 <td>Win 98+ / OSX.2+</td>
206 <td class="center">1.8</td>
207 <td class="center">A</td>
212 <td>Win 95+ / OSX.1+</td>
213 <td class="center">1</td>
214 <td class="center">A</td>
219 <td>Win 95+ / OSX.1+</td>
220 <td class="center">1.1</td>
221 <td class="center">A</td>
226 <td>Win 95+ / OSX.1+</td>
227 <td class="center">1.2</td>
228 <td class="center">A</td>
233 <td>Win 95+ / OSX.1+</td>
234 <td class="center">1.3</td>
235 <td class="center">A</td>
240 <td>Win 95+ / OSX.1+</td>
241 <td class="center">1.4</td>
242 <td class="center">A</td>
247 <td>Win 95+ / OSX.1+</td>
248 <td class="center">1.5</td>
249 <td class="center">A</td>
254 <td>Win 95+ / OSX.1+</td>
255 <td class="center">1.6</td>
256 <td class="center">A</td>
261 <td>Win 98+ / OSX.1+</td>
262 <td class="center">1.7</td>
263 <td class="center">A</td>
268 <td>Win 98+ / OSX.1+</td>
269 <td class="center">1.8</td>
270 <td class="center">A</td>
273 <td>Seamonkey 1.1</td>
275 <td>Win 98+ / OSX.2+</td>
276 <td class="center">1.8</td>
277 <td class="center">A</td>
280 <td>Epiphany 2.20</td>
283 <td class="center">1.8</td>
284 <td class="center">A</td>
290 <td class="center">125.5</td>
291 <td class="center">A</td>
297 <td class="center">312.8</td>
298 <td class="center">A</td>
304 <td class="center">419.3</td>
305 <td class="center">A</td>
311 <td class="center">522.1</td>
312 <td class="center">A</td>
318 <td class="center">420</td>
319 <td class="center">A</td>
322 <td>iPod Touch / iPhone</td>
325 <td class="center">420.1</td>
326 <td class="center">A</td>
332 <td class="center">413</td>
333 <td class="center">A</td>
338 <td>Win 95+ / OSX.1+</td>
339 <td class="center">-</td>
340 <td class="center">A</td>
345 <td>Win 95+ / OSX.2+</td>
346 <td class="center">-</td>
347 <td class="center">A</td>
352 <td>Win 95+ / OSX.2+</td>
353 <td class="center">-</td>
354 <td class="center">A</td>
359 <td>Win 95+ / OSX.2+</td>
360 <td class="center">-</td>
361 <td class="center">A</td>
366 <td>Win 95+ / OSX.3+</td>
367 <td class="center">-</td>
368 <td class="center">A</td>
373 <td>Win 88+ / OSX.3+</td>
374 <td class="center">-</td>
375 <td class="center">A</td>
380 <td>Win 88+ / OSX.3+</td>
381 <td class="center">-</td>
382 <td class="center">A</td>
385 <td>Opera for Wii</td>
388 <td class="center">-</td>
389 <td class="center">A</td>
395 <td class="center">-</td>
396 <td class="center">A</td>
399 <td>Nintendo DS browser</td>
402 <td class="center">8.5</td>
403 <td class="center">C/A</td>
406 <td>Konqureror 3.1</td>
409 <td class="center">3.1</td>
410 <td class="center">C</td>
413 <td>Konqureror 3.3</td>
416 <td class="center">3.3</td>
417 <td class="center">A</td>
420 <td>Konqureror 3.5</td>
423 <td class="center">3.5</td>
424 <td class="center">A</td>
427 <td>Internet Explorer 4.5</td>
430 <td class="center">-</td>
431 <td class="center">X</td>
434 <td>Internet Explorer 5.1</td>
436 <td>Mac OS 7.6-9</td>
437 <td class="center">1</td>
438 <td class="center">C</td>
441 <td>Internet Explorer 5.2</td>
444 <td class="center">1</td>
445 <td class="center">C</td>
448 <td>NetFront 3.1</td>
450 <td>Embedded devices</td>
451 <td class="center">-</td>
452 <td class="center">C</td>
455 <td>NetFront 3.4</td>
457 <td>Embedded devices</td>
458 <td class="center">-</td>
459 <td class="center">A</td>
464 <td>Embedded devices</td>
465 <td class="center">-</td>
466 <td class="center">X</td>
472 <td class="center">-</td>
473 <td class="center">X</td>
479 <td class="center">-</td>
480 <td class="center">X</td>
485 <td>Windows Mobile 6</td>
486 <td class="center">-</td>
487 <td class="center">C</td>
493 <td class="center">-</td>
494 <td class="center">C</td>
498 <td>Other browsers</td>
500 <td class="center">-</td>
501 <td class="center">U</td>
506 <div class="spacer"></div>
509 <h1>Initialisation code</h1>
510 <pre>$(document).ready( function () {
511 var oTable = $('#example').dataTable( {
514 "sScrollXInner": "150%",
515 "bScrollCollapse": true,
517 "aaSortingFixed": [ [1, 'asc'] ],
519 { "bVisible": false, "aTargets": [1] }
523 new FixedColumns( oTable, {
524 "fnDrawCallback": function ( left, right ) {
525 var oSettings = oTable.fnSettings();
526 if ( oSettings.aiDisplay.length == 0 )
531 var nGroup, nCell, iIndex, sGroup;
532 var sLastGroup = "", iCorrector=0;
533 var nTrs = $('#example tbody tr');
534 var iColspan = nTrs[0].getElementsByTagName('td').length;
536 for ( var i=0 ; i<nTrs.length ; i++ )
538 iIndex = oSettings._iDisplayStart + i;
539 sGroup = oSettings.aoData[ oSettings.aiDisplay[iIndex] ]._aData[1] ;
541 if ( sGroup != sLastGroup )
543 /* Cell to insert into main table */
544 nGroup = document.createElement( 'tr' );
545 nCell = document.createElement( 'td' );
546 nCell.colSpan = iColspan;
547 nCell.className = "group";
548 nCell.innerHTML = "&nbsp;";
549 nGroup.appendChild( nCell );
550 nTrs[i].parentNode.insertBefore( nGroup, nTrs[i] );
552 /* Cell to insert into the frozen columns */
553 nGroup = document.createElement( 'tr' );
554 nCell = document.createElement( 'td' );
555 nCell.className = "group";
556 nCell.innerHTML = sGroup;
557 nGroup.appendChild( nCell );
558 $(nGroup).insertBefore( $('tbody tr:eq('+(i+iCorrector)+')', left.body)[0] );
569 <h1>Documentation</h1>
571 <li><a href="http://datatables.net/extras/fixedcolumns">Usage</a></li>
572 <li><a href="http://datatables.net/docs/FixedColumns">API / parameters</a></li>
575 <h1>Basic examples</h1>
577 <li><a href="index.html">Basic demo of FixedColumns with zero initialisation</a></li>
578 <li><a href="left_right_columns.html">Fix the left and right columns in place</a></li>
579 <li><a href="index_column.html">Index column attached to side of the table</a></li>
580 <li><a href="x_y_scrolling.html">Index column, but with Y scrolling and no pagination</a></li>
581 <li><a href="two_columns.html">Two columns fixed in place</a></li>
582 <li><a href="right_column.html">Fix the right column in place</a></li>
583 <li><a href="css_size.html">Speeding up row height matching with CSS</a></li>
584 <li><a href="themed.html">jQuery UI themed table with FixedColumns</a></li>
587 <h1>Advanced examples</h1>
589 <li><a href="rowspan.html">Using ROWSPAN with FixedColumns</a></li>
590 <li><a href="server-side-processing.html">Server-side processing with FixedColumns</a></li>
591 <li><a href="col_filter.html">Individual column filtering</a></li>
592 <li><a href="scale_fixed.html">Setting the fixed column width and resizing the table</a></li>
593 <li><a href="scale_relative.html">Setting the fixed column width with relative sizing</a></li>
594 <li><a href="row_grouping_height.html">Row grouping by grouping like rows in the fixed column</a></li>
595 <li><a href="row_grouping.html">Row grouping by inserting a grouping row</a></li>
599 <div id="footer" style="text-align:center;">
600 <span style="font-size:10px;">
601 FixedColumns and DataTables © Allan Jardine 2011.<br>