/home/techb158/immovalet.ca/bower_components/datatables/examples/advanced_init
NameSizeModeActions
column_render.html212030666editdlrm
complex_header.html204650666editdlrm
defaults.html204720666editdlrm
dom_multiple_elements.html204930666editdlrm
dom_toolbar.html206400666editdlrm
dt_events.html207870666editdlrm
events_live.html216050666editdlrm
events_post_init.html224680666editdlrm
events_pre_init.html222800666editdlrm
footer_callback.html224210666editdlrm
highlight.html211300666editdlrm
html_sort.html110230666editdlrm
language_file.html200920666editdlrm
length_menu.html202250666editdlrm
localstorage.html206460666editdlrm
row_callback.html207690666editdlrm
row_grouping.html221850666editdlrm
sorting_control.html208570666editdlrm
Edit: /home/techb158/immovalet.ca/bower_components/datatables/examples/advanced_init/footer_callback.html (22421B)
DataTables example
DataTables footer callback example

Preamble

DataTables using the header and footer callback manipulation functions (fnHeaderCallback() and fnFooterCallback()) you can perform some powerful and useful data manipulation. The example given below shows how a callback function can be used to total up visible (and hidden) data, taking into account all of DataTable's features (pagination, filtering etc).

Live example

Rendering engine Browser Engine version CSS grade Market share (%)
Trident Internet Explorer 4.0 4 X 0.01
Trident Internet Explorer 5.0 5 C 0.1
Trident Internet Explorer 5.5 5.5 A 0.5
Trident Internet Explorer 6 6 A 36
Trident Internet Explorer 7 7 A 41
Trident AOL browser (AOL desktop) 6 A 1
Gecko Firefox 1.0 1.7 A 0.1
Gecko Firefox 1.5 1.8 A 0.5
Gecko Firefox 2.0 1.8 A 7
Gecko Firefox 3.0 1.9 A 9
Gecko Camino 1.0 1.8 A 0.01
Gecko Camino 1.5 1.8 A 0.01
Gecko Netscape 7.2 1.7 A 0.01
Gecko Netscape Browser 8 1.7 A 0.01
Gecko Netscape Navigator 9 1.8 A 0.01
Gecko Mozilla 1.0 1 A 0.01
Gecko Mozilla 1.1 1.1 A 0.01
Gecko Mozilla 1.2 1.2 A 0.01
Gecko Mozilla 1.3 1.3 A 0.01
Gecko Mozilla 1.4 1.4 A 0.01
Gecko Mozilla 1.5 1.5 A 0.01
Gecko Mozilla 1.6 1.6 A 0.01
Gecko Mozilla 1.7 1.7 A 0.01
Gecko Mozilla 1.8 1.8 A 0.01
Gecko Seamonkey 1.1 1.8 A 0.01
Gecko Epiphany 2.20 1.8 A 0.01
Webkit Safari 1.2 125.5 A 0.01
Webkit Safari 1.3 312.8 A 0.01
Webkit Safari 2.0 419.3 A 1
Webkit Safari 3.0 522.1 A 2.2
Webkit OmniWeb 5.5 420 A 0.01
Webkit iPod Touch / iPhone 420.1 A 0.05
Webkit S60 413 A 0.01
Presto Opera 7.0 - A 0.01
Presto Opera 7.5 - A 0.01
Presto Opera 8.0 - A 0.01
Presto Opera 8.5 - A 0.01
Presto Opera 9.0 - A 0.1
Presto Opera 9.2 - A 0.2
Presto Opera 9.5 - A 0.8
Presto Opera for Wii - A 0.01
Presto Nokia N800 - A 0.01
Presto Nintendo DS browser 8.5 C/A1 0.01
KHTML Konqureror 3.1 3.1 C 0.01
KHTML Konqureror 3.3 3.3 A 0.01
KHTML Konqureror 3.5 3.5 A 0.01
Tasman Internet Explorer 4.5 - X 0.01
Tasman Internet Explorer 5.1 1 C 0.01
Tasman Internet Explorer 5.2 1 C 0.01
Misc NetFront 3.1 - C 0.01
Misc NetFront 3.4 - A 0.01
Misc Dillo 0.8 - X 0.01
Misc Links - X 0.01
Misc Lynx - X 0.01
Misc IE Mobile - C 0.01
Misc PSP browser - C 0.01
Other browsers All others - U 0.04
Total:

Warning! The market share information given in this table is fabricated using a combination of (mild) judgement, the BBC Browser Statistics information and statistics from TheCounter.com. THe lowest usage given to anyone browser is 0.01 for reasons of this example.

Initialisation code

$(document).ready(function() {
	$('#example').dataTable( {
		"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
			/*
			 * Calculate the total market share for all browsers in this table (ie inc. outside
			 * the pagination)
			 */
			var iTotalMarket = 0;
			for ( var i=0 ; i<aaData.length ; i++ )
			{
				iTotalMarket += aaData[i][4]*1;
			}
			
			/* Calculate the market share for browsers on this page */
			var iPageMarket = 0;
			for ( var i=iStart ; i<iEnd ; i++ )
			{
				iPageMarket += aaData[ aiDisplay[i] ][4]*1;
			}
			
			/* Modify the footer row to match what we want */
			var nCells = nRow.getElementsByTagName('th');
			nCells[1].innerHTML = parseInt(iPageMarket * 100)/100 +
				'% ('+ parseInt(iTotalMarket * 100)/100 +'% total)';
		}
	} );
} );

Other examples