c1.documentReady(function () {
var theGrid = wijmo.Control.getControl(
"#theGrid"
);
var view = theGrid.collectionView;
document.addEventListener(
'change'
, function (e) {
view.groupDescriptions.clear();
var props = e.target.value.split(
','
);
for
(var i = 0; i < props.length; i++) {
var prop = props[i];
var gd;
if
(prop ==
'Sales'
) {
gd =
new
wijmo.collections.PropertyGroupDescription(prop, function (item) {
if
(item.Sales > 80000)
return
'High'
;
if
(item.Sales > 40000)
return
'Medium'
;
return
'Low'
;
});
}
else
{
gd =
new
wijmo.collections.PropertyGroupDescription(prop);
}
view.groupDescriptions.push(gd);
}
});
document.getElementById(
'btnDump'
).addEventListener(
'click'
, function () {
if
(!view.groups) {
console.log(
'*** no groups'
);
}
else
{
console.log(
'*** '
+ view.groups.length +
' groups:'
);
for
(var i = 0; i < view.groups.length; i++) {
dumpGroup(view.groups[i],
''
);
}
}
});
function dumpGroup(group, level) {
var propName = group.groupDescription[
'propertyName'
];
var groupName = group.name;
var groupInfo = propName +
' > '
+ groupName;
groupInfo +=
' ('
+ group.items.length +
' items)'
;
groupInfo +=
' total sales: '
+ wijmo.Globalize.format(group.getAggregate(
'Sum'
,
'sales'
),
'c2'
);
console.log(level + groupInfo);
if
(group.groups) {
for
(var i = 0; i < group.groups.length; i++) {
dumpGroup(group.groups[i], level +
' '
);
}
}
}
});