ExpressionEngine® User Guide

Legacy Documentation

You are using the documentation for version 4.3.8. Go here for the latest version.

Javascript Table Plugin

class $.fn.table()

The javascript table plugin provides the javascript counterpart to the enhanced table class. It uses the jQuery UI widget pattern, which means that it will be available directly on the table. The initial setup is done automatically when a datasource is declared in the Table Class.

Note

The plugin does not automatically handle sorting and filtering. Your datasource will be called when manipulating these options.

Adding a filter

add_filter(obj)

To add a form or form element as a filter, simply pass it to the add_filter function.

$('table').table('add_filter', $('form'));

You can also manually add one or more filters by passing a plain javascript object to the same function.

$('table').table('add_filter', { name: 'igor' });
Arguments:
  • obj – jQuery object representing the form/form element to filter by or a manual filter
Returns:

The current jQuery object

Return type:

jQuery Object

Controlling Sorting

set_sort(column, dir)

The plugin allows you to manually control sorting. You can set a sort by providing a column name and a direction:

$('table').table('set_sort', 'name', 'asc');

You can also add a sub-sort to the current sort:

$('table').table('add_sort', 'age', 'desc');

You can also revert to the initial sort after making changes:

$('table').table('clear_sort', 'age', 'desc');
Arguments:
  • column – The column to manually sort
  • dir – The direction to sort; either 'asc' or 'desc'
Returns:

The current jQuery object

Return type:

jQuery Object

Note

Sorting is automatically handled when headers are clicked.

Events

The plugin fires various events to report its internal state.

tableload

tableload

Fired at the beginning of a table change. Bind to this to show a loading indicator

$('table').bind('tableload', function() {
    $('#indicator').show();
});

tableupdate

tableupdate

Fired when the table html refreshes. Bind to this to hide a loading indicator

$('table').bind('tableload', function() {
    $('#indicator').show();
});