March 18, 2024

12 Useful jQuery Plugins for Working with Tables

The days of using tables for layout are hopefully gone. This doesn’t mean that tables don’t have a place in web design and development. When you have tabular data, tables are the way to go and are what you should be using. However, ordinary tables can be limiting to the user when you have complex data to display. Here are 12 very useful jQuery plugins that will add valuable functionality to your tables such as column sorting, fixed headers, pagination, and more.

jExpand

jquery tables

jExpand is ultra lightweight jQuery plugin that will make your tables expandable. Typical for line of business applications, this feature can help you organize tables better. This way, tables can hold more information such as images, lists, diagrams and other elements.

columnHover

jquery tables

columnHover lets you highlight whole columns in a table when hovering over them.

DataTables

jquery tables

DataTables is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table. Some key features include: variable length pagination, on-the-fly filtering, and multi-column sorting with data type detection.

Fixed Header Tables

jquery tables

Fixed Header Tables takes valid table HTML and builds a fixed header and scrolling body with optional footer.

Flexigrid

jquery tables

Flexigrid gives you a lightweight but rich data grid with resizable columns and scrolling data to match the headers. It also has the ability to connect to an xml based data source using Ajax to load the content.

Ingrid

jquery tables

Ingrid is an unobtrusive jQuery plugin that adds datagrid behaviors (column resizing, paging, sorting, row and column styling, and more) to your tables.

treeTable 2.0

jquery tables

treeTable allows you to turn a column in your table into a tree. One notable feature is the ability to move an entire branch in the tree by dragging and dropping.

Tablesorter

jquery tables

Tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. Tablesorter can successfully parse and sort many types of data including linked data in a cell.

columnManager

jquery tables

columnManager allows you to toggle the visibility of table columns (collapsing and expanding them) and to save the state until the next visit.

Table Drag and Drop

jquery tables

Table Drag and Drop allows the user to reorder rows within a table, for example if they represent an ordered list (tasks by priority for example). Individual rows can be marked as non-draggable and/or non-droppable (so other rows can’t be dropped onto them). Rows can have as many cells as necessary and the cells can contain form elements.

Chromatable

jquery tables

Chromatable allows you to easily create scrolling tables with fixed headers.

uiTableFilter

jquery tables

uiTableFilter is a plugin that makes filtering table rows very easy.

Share

Henry Jones is a web developer, designer, and entrepreneur with over 14 years of experience. He is the founder of WDL and ThemeTrust.

27 Comments

  1. J Reply

    I think these are great links, but i have to think that maybe for ‘fixed header tables’ a skilled developer is not going to need this plugin…i mean you just have 3 div’s with seperate tables in them, the middle div with a set height and overflow:auto…its not really plugin worthy !!

    1. Mark Reply

      I developed ‘fixed header tables’ and currently still improving it. Its not as simple as it sounds. The reason why I started this plugin is because at work I deal with a lot of tabular data.

      The problem with having 3 separate tables is that you end up having to load the same data 3 times so that your columns remain the same width in each table. With the plugin I avoid doing that so you only have to load the data once in one table.

      Another problem is creating a fixed header is simple enough if you have fixed width columns. You can do this with just CSS. My requirements at work had to be a fluid design to maximize screen space and show as much data as possible and not load the data 3 times. With the plugin you have the option of resizing the browser window which will also resize the table and columns.

    2. zsiswick Reply

      That also assumes that the plugin audience is purely “skilled developers”. There are a lot of traditional print graphic designers that have moved over to website design who can greatly benefit from simple UI enhancements made possible with jQuery.

      Also, from a development perspective, does it really make sense to create the additional markup required for every scrolling table you want to deploy on a large scale website? Utilizing a jQuery plugin to handle the additional markup results in cleaner, more understandable code.

  2. WebGyver Reply

    Thank you very much for putting all of this together. Good work. It always looks so easy when you see a list of jQuery extensions that somebody else has put together, but I know from experience that a lot of work goes into this.

    Something completely different:

    Has anyone seen functional and good-looking examples of two tables, side-by-side, that allow you to transfer data from one table to another?

    There are plenty of samples with SELECT boxes, but I’m looking for a table-based solution (and yes, it is for tabular data).

    Thanks for any links or suggestions.

  3. Guilherme Cruz Reply

    Dear Friends,

    I am looking for a jQuery plugin that works with tables and allows all the five features below:

    1) Drag and drop of an entire row (up, down).

    2) Drag and drop of an entire column (left, right) * This is the most important!

    3) Add new rows visually just passing the mouse over the bottom limit of the table.

    4) Add new columns visually just passing the mouse over the right limit of the table.

    5) By double clicking, edit the content of the cell.

    I would aprecciate any tip or solution.

    Thanks a lot!

    Guilherme Cruz

Leave a Reply

Your email address will not be published. Required fields are marked *