In den letzten Wochen konnte ich mich etwas ausgiebiger mit jqGrid beschäftigen, und ich muss sagen: Diese AJAX-Tabellen-Komponente hat was. Es gibt kaum etwas, was ich als Feature in anderen Tabellenkomponenten kennengelernt habe, das hier fehlen würde. Die zugehörige Demoseite beweist das denke ich eindrucksvoll. Allerdings ist der Einstieg nicht ganz leicht, der Technologiebaum dahinter ist schon recht tief.
jqGrid baut auf JQuery UI auf, das dann widerum auf JQuery. Letzteres setzt obwohl es JavaScript stark vereinfacht doch hier und da detailliertere JavaScript-Kenntnisse voraus (der ideale Einstieg hierfür ist immer noch der O’Reilly JavaScript Definitive Guide und online die JavaScript-W3School).
Für das Backend, das für die Komponente Daten heranschafft, kommt nochmal die eine oder andere Technologie hinzu. Hier ist die Wahl aber frei, solange das Framework jqGrid mit JSON oder XML-Daten befeuern kann. Das Format kann relativ weiträumig angepasst werden: jqGrid offeriert Default-XML/JSON-Formate, erlaubt aber die Konfiguration seines XML-Readers, falls man das Quellformat nicht anpassen kann. Einschränkung dabei: jqGrid kann derzeit nur XML-Tags, nicht aber XML-Attribute als Datenquelle heranziehen.
Hat man ein erstes jqGrid-Skript vor sich, ist oft nicht ganz klar, welches Feature aus welchem Paket kommt. Ich bin wirklich froh Firebug als Firefox-Extension mit an Bord zu haben, sonst würde ich wohl heute noch nicht verstehen wie das Ganze zusammengreift.
Was wirklich hilft bei der optischen Gestaltung des Grids ist, dass diese mittels JQuery UI Themerollererfolgen kann. Im Projekt hat unsere Designerin hiermit relativ schnell ein passendes Theme erstellen können, das mit meiner Grid-Software-Demo auch sofort reibungslos zusammengespielt hat.
Fallstricke bei jqGrid: Das eine oder andere JQuery Plugin muss hinzugefügt werden, damit alle Features funktionieren. Will man beispielsweise mit einem komfortablen Editor Tabellenspalten des Grids sortieren oder filtern, wird die Multiselect Komponente nötig. Achtung dabei: Von dieser gibt es mehrere Quellcode-Varianten im Internet, die nicht alle mit jqGrid zusammenspielen. Der richtige Ort für die Komponente ist Github, das ich so als Social Coding Dienst auch mal kennenlernen durfte.
Fazit: jqGrid ist eine sehr starke Client-Tabellenkomponente für Webanwendungen, man darf die Einarbeitungszeit allerdings nicht unterschätzen. Grob 2-3 Tage sind nötig bis man damit produktiv ist. Danach hat man aber auch JQuery und JQuery UI deutlich besser im Griff. Die Dokumentation ist noch etwas schwach, wäre diese besser, wäre auch sicher der Einstieg reibungsloser. Auch sollte man beachten, dass Javascript recht viel Last auf den Clientbrowser legt. Manchmal ist es sicher sinnvoller seine Tabellen im Backend aufzubauen und via reinem HTML in den Browser zu bringen. Für ein solches Szenario hat sich bei mir Displaytag sehr bewährt.