This scenario demonstrates:
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
a!localVariables(
local!refreshCounter: 0,
local!startIndex: a!refreshVariable(
value: 1,
refreshOnVarChange: local!refreshCounter
),
local!pagingInfo: a!pagingInfo(local!startIndex, 5),
local!employees: a!refreshVariable(
value: a!queryEntity(
entity: cons!EMPLOYEE_ENTITY,
query: a!query(
pagingInfo: local!pagingInfo
),
fetchTotalCount: true
),
refreshOnVarChange: local!refreshCounter
),
{
a!buttonArrayLayout(
buttons: {
a!buttonWidget(
label: "Refresh",
size: "SMALL",
style: "SECONDARY",
saveInto: a!save(local!refreshCounter, local!refreshCounter + 1)
)
}
),
a!gridField(
labelPosition: "COLLAPSED",
data: local!employees,
columns: {
a!gridColumn(label: "Name", value: concat(fv!row.firstName, " ", fv!row.lastName)),
a!gridColumn(label: "Department", value: fv!row.department),
a!gridColumn(label: "Title", value: fv!row.title)
},
pagingSaveInto: a!save(local!startIndex, fv!pagingInfo.startIndex)
)
}
)
local!refreshCounter
always changes. Using a boolean flag that gets set to true when you click the button wouldn't work because the value wouldn't change between the first and second time you clicked the button.local!startIndex
and local!employees
need to refresh when the refresh button is clicked. This makes sure that the user is on the first page once they click refresh and that the data is queried even if the start index didn't change (for example, if they were already on the first page).