×
Creating solutions

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
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest