Starting from a brief review article, I looked at five tools:
- jqGrid 3.5 (released 1 August 2009)
- Ingrid 0.9.3 (27 June 2009)
- FireScope Grid 0.1.5 (29 June 2009)
- Flexigrid 1.0b3 (14 July 2008)
- jTPS 0.4 (10 September 2008) (Google Code home)
Flexigrid and jTPS have very little documentation and have not been updated for nearly a year, and so I did not try to get these tools working. I downloaded jqGrid, Ingrid, and FireScope Grid and assembled test harnesses for all three.
Of these three, all use Ajax to populate the grid. All of them accomplish sorting by an Ajax call back to the server, passing a parm to specify the sort column and direction. So we would accomplish sorting of dates (or any other data types with unusual sort requirements) with server-side logic.
All three tools provide paging navigators, but all require some paging logic to be performed on the server. I didn't fully eval this area, because I used a static file of data to populate the grid.
Ingrid and FireScope Grid only support HTML data. jqGrid, according to its wiki entry, provides these options for its datatype parameter:
- xml
- json
- local or clientSide
- xmlstring
- jsonstring
- script
- function (…)
I tested the tool with XML, but JSON support would appear to be consistent with other technologies we're using on the project.
jqGrid is not bug-free: in particular, I'm seeing a one-off issue with specifying the number of rows to display, and there are some formatting weirdnesses with the navigation bar. But it is the only tool of the five with a wiki for documentation (albeit the wiki's spelling and grammar are a little wonky), and it is the most fully-featured tool. Indeed, the download page offers a choice of optional components to download.
I will proceed with building out a prototype of the new search results page with jqGrid.