Изменения

Блог:Виталий Филиппов/2013-04-03 О JSных гридах

248 байтов добавлено, 21:52, 2 апреля 2013
м
Нет описания правки
Посранивал тут я гриды. А именно, jqGrid и, в очередной раз — dhtmlxGrid и ещё ExtJS’овский грид. И хочу сказать — блин, какое-то фуфло))
# С [http://www.sencha.com/products/extjs/ ExtJS ] всё понятно — он в своём обычном репертуаре: умеет почти всё, но выглядит это так: загрузите ТОРМОЗИТ, требует МЕГАБАЙТ JS’а, и потом после долгого долгое и мучительного конфигурирования да, у вас будет крутой грид… которыймучительное конфигурирование — даже чтобы сделать в гриде тупой селектбокс, правда, всё равно ЛАГАЕТнужны дополнительные извращения. И всё равно имеет баги — баги там тоже есть — например, я не смог добиться, чтобы TreeGrid при изначальной загрузке полностью разворачивался — если указать expanded=true для всего, то при загрузке часть записей оказывается не на своём месте в иерархии (лечится сворачиванием и разворачиванием). Если же попытаться сделать expandAll по событию load, то все записи дублируются, и это уже не лечится никак. Кроме того, сегодня на работе долго ловили баг — в Store запись есть, а в гриде её нет. Кстати, я что-то даже не дождался окончания ловли. Но код аккуратный, это да. И документация хорошая.# [http://www.trirand.com/ jqGrid ] умеет довольно много, но всё равно меньше, чем ExtJS’овский. Например, не умеет drag’n’drop-ом перемещать элементы в иерархии. Но главный минус — он ещё и весь какой-то КОСОЙ! Даже единого стиля названий методов/аргументов не выдержано, и документация хромает (не очень качественно сделана на dokuwiki). Опции для селектов зачем-то задаются в одной строке типа <tt><nowiki>"id:name;id:name;id:name"</nowiki></tt> и т. п. Да и конфигурируется тоже не особо легко.# А вот [http://www.dhtmlx.com/docs/products/dhtmlxGrid/ dhtmlxGrid] — хороший пример, он реально быстро работает и очень прост в конфигурации, и всё бы хорошо, если бы не одно «НО»: его полная версия, сцука, ПЛАТНАЯ :-(! Ну и собственно даже платная версия имеет странную лицензию — например, там есть пункт «The Licensee is not permitted to distribute the component(s) or its part(s) in any fashion which would promote, encourage, or allow reuse or redistribution of the JavaScript component(s)». Бугага. Это по их мнению вообще выполнимо в случае JS? А также вызывает вопрос — хотя бы продавать-то софтину, в составе который эта хрень тусуется, можно?<br />Но в целом, несмотря на отсутствие TreeGrid’а и полезных фишек типа фиксированных колонок мне GPL’ная его версия GPL’ный вариант dhtmlxGrid’а всё равно нравится, ибо БЫСТРАЯон БЫСТРЫЙ. Хотя внутри красота кода, по-моему, явно хромает.<br />Также теоретически, если никто не увидит :), то можно наверное стырить JS-ники со страничек с примерами про-версии.
{{wl-publish: 2013-04-03 01:35:47 +0400 | VitaliyFilippov }}