-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathlocal-example.js
112 lines (106 loc) · 2.58 KB
/
local-example.js
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Ext.onReady(function() {
var Company = Ext.data.Record.create([
'company',
'price',
'change'
]);
var store = new Ext.data.JsonStore({
url: "getdata.php",
root: "rows",
autoLoad: true,
fields: Company,
sortInfo: {field: "company", direction: 'ASC'}
});
store.load();
var filterRow = new Ext.ux.grid.FilterRow({
// automatically refilter store when records are added
refilterOnStoreUpdate: true
});
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{
id: 'company',
header: 'Company',
width: 160,
sortable: true,
dataIndex: 'company',
filter: {
// Filter by string beginnings,
// the default is to filter by occurance ("/{0}/i")
test: "/^{0}/i"
}
},
{
header: 'Price',
width: 75,
sortable: true,
renderer: 'usMoney',
align: "right",
dataIndex: 'price',
filter: {
// find prices greater than filter value
test: function(filterValue, value, record) {
return +value >= +filterValue;
}
}
},
{
header: 'Change',
width: 75,
sortable: true,
dataIndex: 'change',
filter: {
field: {
xtype: "combo",
mode: 'local',
store: new Ext.data.ArrayStore({
id: 0,
fields: [
'value'
],
data: [['-'], ['up'], ['none'], ['down']]
}),
valueField: 'value',
displayField: 'value',
triggerAction: 'all',
value: "-"
},
fieldEvents: ["select"],
test: function(filterValue, value, record) {
return filterValue === "-" || filterValue === value;
}
}
}
],
plugins: [filterRow],
stripeRows: true,
autoExpandColumn: 'company',
height: 350,
width: 450,
title: 'Filtering with local store',
renderTo: "local-grid-container",
bbar: [
{
text: "Reload",
handler: function() {
store.load();
}
},
{
text: "Add",
handler: function() {
store.addSorted(new Company({
company: "Google Inc",
price: 150.7,
change: "up"
}));
}
}
]
});
// For testing that column header renaming works
document.getElementById("button").onclick = function() {
grid.getColumnModel().setColumnHeader(1, "Hello");
};
});