## Filtering plug-in functions

The filtering plug-in options that DataTables provides are remarkably powerful, and and let you set almost any filtering criterion you wish for user based input. A couple of things to note for filtering, firstly you will likely need to customise the filtering presented on this page to match your specific needs. Secondly, if you are using server-side processing, DataTables doesn't do any client-side filtering, so these plug-ins will not have any effect (with server-side processing, all data manipulation is done by the server - so you would need to implement these filters there).

DataTables supports two different kinds of plug-in filtering methods:

- Type based column filtering - filtering based on the sType of the column.
  - How to use DataTables plug-in column type based filtering
  - Plug-in column type based filtering
- Row based filtering - filtering applied to the data from the whole row.
  - How to use DataTables plug-in row filtering functions
  - Plug-in row filtering functions

### How to use DataTables plug-in column type based filtering

To make use of the column (type) based filtering plug-in functions below, you need to include it in the Javascript available for your page, after you load the DataTables library, but before you initialise the DataTable. You must also set the column type for the column(s) that you wish to apply the filter to using sType.

    <script type="text/javascript" src="jquery.dataTables.js"></script>

    <script type="text/javascript" src="dataTables.htmlColumnFilter.js"></script>

    <script type="text/javascript">

    	$(document).ready(function() {

    		var oTable = $('#example').dataTable({

    			"aoColumns": [

    				"sType": "html",

    				null

    			]

    		});

    	} );

    </script>

### Plug-in column type filtering functions

include(`build.1.inc')

### How to use DataTables plug-in row filtering functions

To add the functionality provided by the filtering functions below, you simply need to include it in the Javascript available for your page, after you load the DataTables library, but before you initialise the DataTable. These filters are global and will be applied whenever DataTables applies it's own filtering (for details please see the filters development page).

In the following example the range filtering (numbers) plug-in is saved to a file, and used in the DataTable which is initialised. Note also that event listeners are applied to the two inputs, which will cause the table to redraw, and thus filter the new data (live example):

    <script type="text/javascript" src="jquery.dataTables.js"></script>

    <script type="text/javascript" src="dataTables.rangeFilter.js"></script>

    <script type="text/javascript">

    	$(document).ready(function() {

    		var oTable = $('#example').dataTable();

    		/* Add event listeners to the two range filtering inputs */

    		$('#min').keyup( function() { oTable.fnDraw(); } );

    		$('#max').keyup( function() { oTable.fnDraw(); } );

    	} );

    </script>

### Plug-in row filtering functions

include(`build.2.inc')