Logo

DataGrid aneb Mřížka na data

Vložil Pavel Klobasa, 4. Leden 2009 - 14:36

Ponejprv chci upozornit čtenáře na článek na serveru Zdroják o použití komponenty DataGrid v Silverlightu. Datovou mřížku pokládám za jednu z nejdůležitejších komponent, dokonce jsem toho názoru, že schopnosti této komponenty určují praktickou použitelnost celé technologie. Rád bych vám ukázal, že i v „čistém“ prohlížeči za pomocí JavaScriptu, DHTML a AJAXu je možné používat velmi povedené mřížky…

Základní vlastnosti

Grid původně pochází z GUI aplikací, přebírá tedy zvyklosti obvyklé v tomto prostředí. Na následujícím obrázku některé vidíte uživatelsky nastavitelné řazení sloupců, ořezávání příliš širokého obsahu, barevně označený výběr několika řádků a stránkovač:

Tento příklad naleznete také živě na webu (jde o komponentu do Apache Wicketu).

Pokročilé vlastnosti

Tím ovšem ukázka schopností (mého oblíbeného) Wicketu nekončí, na těch samých stránkách najdete TreeGrid, kde jsou data zobrazena v podobě hierarchie. Po clicku se řádek přepne do editačního režimu.

In-line editace dat je pro uživatele velmi praktická – na měněný údaj clickne a na tom samém místě ho opraví. Ještě něco důležitého chybí? Ano, filtrování. Ergonomicky je nejlepší řešení je umístit filtr do hlavičky, tak jak to vidíme v DHTMLX gridu. Tato mřížka navíc umožňuje čtvercový výběr (v obrázku žlutou barvou):

Užitečným prvkem je také zobrazení výsledky agregační funkce pod sloupci, jak to umí NetAdventage grid (komponenta pro JSF):

Ještě více pokročilé vlastnosti

Je několik dalších vlastností, které uživatel GUI aplikace očekává a které by mu mohly v RIA aplikaci chybět. Například:

  • skrývání sloupců
  • ovládání z klávesnice
  • skinování
  • ukládání nastavení gridu do příštího sezení (tj. na server)
  • bezproblémová práce s velkými zdroji dat (problém u klientských řešení, kdy se používá cache v prohlížeči. Podle ukázky to DHTMLX grid zvládá.)

Jako poslední jsem si nechal ukázku z gridu z Wicketu, který podporuje změnu pořadí sloupců pomocí drag&drop – světle modrý rámeček znázorňuje, že myš něco „drží“, šipky pak možné umístění sloupce.

Závěr

Je lepší použít JavaScriptové řešení, klientské nebo serverové, a nebo raději Silverlight či Flex? Nebo zvolit poslední novinku JavuFX?

Vybrat vhodnou technologii pro RIA není snadné. Všechny technologie jsou relativně nové, jen v samotném JavaScriptu existuje několik kvalitních sad komponent…

© 2005-2008 oXy Online s.r.o., všechna práva vyhrazena.