Обзоры для отбора:
- https://www.angularminds.com/blog/article/15-useful-javascript-based-data-gri...
- https://habr.com/post/313128/
- https://github.com/FancyGrid/awesome-grid
- https://www.jqueryscript.net/tags.php?/data grid/
- https://jspreadsheets.com/
Текущий остаток
- https://fancygrid.com/samples/form/grid - нет PG_UP, PG_DOWN, при слишком маленьком окне указатель уходит за границы экрана
- http://slickgrid.net Активный форк , http://6pac.github.io/SlickGrid/examples/example-spreadsheet.html
- jqGrid - идёт пока вне конкурса, очень популярна, поэтому и находится здесь. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs (форк) https://github.com/free-jqgrid/jqGrid/wiki https://free-jqgrid.github.io/ (коммерч. продолжение оригинала) http://www.guriddo.net/documentation/guriddo/javascript/
- ag-Grid - опять же, вне конкурса, т.к. рекомендуется разработчиками SlickGrid в качестве коммерческой альтернативы.
Первый круг требований
Изменяемая ширина колонок (хотя я уже теперь думаю - а нужна ли она?), постраничный просмотр, поддержка AJAX, маркер текущей записи, хождение по записям стрелками, доступность исходника.
Не прошли первый круг: tui.grid, jsGrid, Quickgrid, jqGrid, jexcel, https://github.com/paulopmx/Flexigrid (нет указателя текущей записи), http://www.evolutility.org/demo/demo_ToDo.aspx (нет указателя текущей записи), https://datatables.net/ (то же),
Идём на второй круг
Теперь должно выполняться следующее:
- при любой навигации, кроме прокрутки за скроллбар, текущая запись видна на экране
- кнопки pgup-pgdn позволяют листать запись
- ctrl-f ищет в гриде, если грид фокусирован, и на всей странице, включая грид, если грид не фокусирован. Вообще это требование спорное, т.к. требует загрузки всего контента в страницу. Т.е., либо нужно перешибить Ctrl-f и листать страницы программно, либо не нужен скроллбар, а нужно явно показать, что на странице присутствует лишь часть данных.
- не тормозит при хождении стрелками
Не прошли второй круг: w2ui.
https://paramquery.com/demos/readonly_cells - ctrl-f не листает по строкам.
https://dhtmlx.com/docs/products/dhtmlxGrid/ - указатель уходит за границы экрана.
Третий круг
Здесь мы выкидываем те гриды, которые не поддерживают фильтрацию на сервере.
Не прошли: dynamic-table - казалось, что у него уникально хорошее хождение с клавиатуры, но slick grid победил. Поэтому dynamic-table исключается из дальнейшего рассмотрения. Остальные выжили.
Остаток требований:
- грид находится в двух состояниях - фокусирован или нет. При щелчке вне грида грид не фокусирован
- быстро показывает набор из 100 записей, находящихся в виде JSON на самой странице.
Итог Пока что выбрал SlickGrid, его хвалят за модульность и быстроту. У него сейчас одна основная ветка. Он используется в stackoverflow (data.stackexchange.com), pgAdmin4 (уж не знаю, хорошо это или наоборот), как модуль Drupal (500 сайтов).