×
Vytvárame riešenia

Spoznávame Dojo dgrid - časť 4

V tejto časti bude predstavený príklad pre riadenie gridu v režime read-only. Jeho súčasťou budú jednoduché funkcie s názvami update(), filter() a reset(), ktoré budú slúžiť pre manipuláciu s vytvorenými dátami.
Funkcia update() nahrá nové dáta. Funkcia reset() zobrazí pôvodné dáta a zruší filter. Funkcia filter() zobrazí výsledky podľa filtra v metóde query().
Ako prvé je potrebné definovať tlačidlá pre funkcie, ktoré budú obsluhovať dgrid. Tlačidlá sú vytvorené z modulu dijit/form/Button.
Príklad: Zápis do sekcie HTML.
1
2
3
<div id="update" data-dojo-type="dijit/form/Button">Update data</div>
<div id="filter" data-dojo-type="dijit/form/Button">Filter data</div>
<div id="reset" data-dojo-type="dijit/form/Button">Reset data</div>
Ďalším krokom je vytvorenie starých (pôvodných) a nových dát.
Príklad: Vytvorenie pôvodných dát.
1
2
3
4
5
var oldData = [
{id : 1, item : "Demo line 1"},
{id : 2, item : "Demo line 2"},
{id : 3, item : "Demo line 3"}
];
Príklad: Vytvorenie nových dát.
1
2
3
4
5
var newData = [
{id : 1, item : "New demo line 1"},
{id : 2, item : "New demo line 2"},
{id : 3, item : "New demo line 3"}
];
Pre dáta je potrebné navrhnúť layout.
Príklad: Rozloženie dát v gride.
1
2
3
4
var layout = [
{field : "id", label : "ID"},
{field : "item", label : "ITEM"}
];
A po dátach a layoute je na rade vytvorenie gridu.
Príklad: Vytvorenie gridu.
1
2
3
4
var Dgrid = new Grid({
columns : layout,
store : new Memory({data : oldData})
}, "dgrid");
Na záver je potrebné definovať poslucháčov udalostí a funkcie pre tlačidlá, ktoré budú riadiť grid.
Príklad: Definovanie poslucháčov udalostí.
1
2
3
on(dom.byId("update"), "click", update);
on(dom.byId("filter"), "click", filter);
on(dom.byId("reset"), "click", reset);
Príklad: Definovanie funkcií pre jednotlivé tlačidlá.
1
2
3
4
5
6
7
8
9
10
11
12
function update() {
Dgrid.set("store", new Memory({data : newData}));
}
function reset() {
Dgrid.set("query", {});
Dgrid.set("store", new Memory({data : oldData}));
}
function filter() {
Dgrid.set("query", {id : 2});
}
A teraz to dáme všetko dokopy. Výsledkom je nasledujúci programový kód.
Príklad: Celý programový kód.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<div id="dgrid"></div>
<div id="update" data-dojo-type="dijit/form/Button">Update data</div>
<div id="filter" data-dojo-type="dijit/form/Button">Filter data</div>
<div id="reset" data-dojo-type="dijit/form/Button">Reset data</div>
<script>
require(["dojo/ready", "dgrid/OnDemandGrid", "dojo/store/Memory",
"dojo/on", "dojo/dom", "dojo/parser"],
function(ready, Grid, Memory, on, dom) {
ready(function() {
var oldData = [
{id : 1, item : "Demo line 1"},
{id : 2, item : "Demo line 2"},
{id : 3, item : "Demo line 3"}
];
var newData = [
{id : 1, item : "New demo line 1"},
{id : 2, item : "New demo line 2"},
{id : 3, item : "New demo line 3"}
];
var layout = [
{field : "id", label : "ID"},
{field : "item", label : "ITEM"}
];
var Dgrid = new Grid({
columns : layout,
store : new Memory({data : oldData})
}, "dgrid");
on(dom.byId("update"), "click", update);
on(dom.byId("filter"), "click", filter);
on(dom.byId("reset"), "click", reset);
function update() {
Dgrid.set("store", new Memory({data : newData}));
}
function reset() {
Dgrid.set("query", {});
Dgrid.set("store", new Memory({data : oldData}));
}
function filter() {
Dgrid.set("query", {id : 2});
}
});
});
</script>
Pre správne fungovanie príkladu je možné použiť šablónu pre Dojo.

Záver

V ďalších častiach venovaných dgridu sa zameriame na rozšírenie funkcionality a formátovanie vzhľadu prostredníctvom jazyka CSS.


Dojo,programovanie,dojo,JavaScript,grid,dgrid,dgrid/OnDemandGrid,dojo/store/Memory,dijit/form/Button
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších