| Dojo.DataGrid s Widget-om |
|
|
|
| Napísal Ján Šuňavec |
| 04.05.2009 |
|
Dojo je asi jeden z najlepších JavaScript frameworkov s ktorými som mal možnosť pracovať. Nieje to len jedna knižnica s funkciami, ale má aj sadu vizuálnych komponent. Asi najpoužívanejšia komponenta je DataGrid. Nanešťastie pridať do jedného riadku ďalšiu komponentu je trochu zložité. Preto si dnes ukážeme, ako integrovať ProgressBar do dojo.DataGrid-u. Výsledok bude vyzerať nejako takto. Uvedený príklad je funkčný pod Dojo 1.3.
Na začiatku treba načítať DOJO a DIJIT súbory a potrebné knižnice. <script type='text/javascript' src='http://localhost/dojo/dojo/dojo.js' HTML stránka, kde je uložený DIV, kam sa grid zobrazí. <html>
var emptydata = {identifier:'id', label:'filename', items:[]};funkcia makeProgress nerobí nič iné len vráti <DIV> tag. Možno vás napadne prečo nevrátiť rovno <div dojoType="dijit.ProgressBar"></div>. Bohužial, dojo nebude parsovať dojoType a namiesto ProgressBar-u sa vám zobrazí obyčajný div. Takže vrátime DIV tag a o sekundu neskôr zavoláme funkciu buildProgressBar. function makeProgress(value, rowIndex) {Do div tagu ktorý vracia funkcia formatter sa pripojí ProgressBar, ktorý sme predtým vytvorili, ale len za predpokladu, že ešte neexistuje. Potom sa ešte nastaví správna výška riadku. function buildProgressBar(inRowIndex, inCell) {Funkcia vráti unikátne ID pre každý riadok DataGrid-u. Pozor ak chcete použiť viac widget-ou, na jeden riadok, treba funkciu zmeniť. function makeProgressBarId(inRowIndex) { Celý príklad, ktorý používa DataGrid a ProgressBar pri uploadovaní súborov na server si môžete stiahnuť. Pre správny chod je nutné ešte prikopírovať najnovší dojo toolkit. |