Hi Isomorphic,
retesting this issue, I noticed a different behavior depending on the way I stop editing a row.
"Enter" moves the row to the new group, even if there are errors, while a click outside the edit row and the "Down" key don't do this.
I'd expect to behave "Enter" like the others. While the thread above is about a similar thing involving server errors, this here also happens for client side validation errors.
Please see the modified customGrouping-sample (main change: client side validator added) in current 10.1p (v10.1p_2017-12-21) / 11.1p (v11.1p_2017-12-29):
Please note how Brazil ("Down"-key) stays in the group and Canada ("Enter"-key) moves to the new group.
Best regards
Blama
retesting this issue, I noticed a different behavior depending on the way I stop editing a row.
"Enter" moves the row to the new group, even if there are errors, while a click outside the edit row and the "Down" key don't do this.
I'd expect to behave "Enter" like the others. While the thread above is about a similar thing involving server errors, this here also happens for client side validation errors.
Please see the modified customGrouping-sample (main change: client side validator added) in current 10.1p (v10.1p_2017-12-21) / 11.1p (v11.1p_2017-12-29):
Code:
isc.ListGrid.create({ ID: "countryList", width:500, height:600, canEdit:true, sortField:"countryName", modalEditing:true, alternateRecordStyles:true, cellHeight:22, dataSource: countryDS, // display a subset of fields from the datasource fields:[ {name:"countryName"}, {name:"continent"}, { name:"independence", getGroupValue : function (value, record, field, fieldName, grid) { if (value == null) return "Ancient"; else if (value.getFullYear() < 1910) return "Pre-Industrial"; else return "Post-Industrial"; } }, { name:"population", validators: [{ type: "integerRange", min: 1, max: 20000, errorMessage: "Please provide a reason" }], GROUP_SMALL: 1, GROUP_MED: 2, GROUP_LARGE: 3, getGroupValue : function (value, record, field, fieldName, grid) { if (value < 100000000) return this.GROUP_SMALL; else if (value < 1000000000) return this.GROUP_MED; else return this.GROUP_LARGE; }, getGroupTitle : function (groupValue, groupNode, field, fieldName, grid) { switch (groupValue) { case this.GROUP_SMALL: baseTitle = "Population less than 100 million"; break; case this.GROUP_MED: baseTitle = "Population between 100 million-1 billion"; break; case this.GROUP_LARGE: baseTitle = "Population over 1 billion"; break; } baseTitle += " (" + groupNode.groupMembers.length + " members)"; return baseTitle; } }, {name:"countryCode", title:"Flag", width:40, type:"image", imageURLPrefix:"flags/16/", imageURLSuffix:".png"} ], groupStartOpen:"all", groupByField: 'population', autoFetchData: true })
Please note how Brazil ("Down"-key) stays in the group and Canada ("Enter"-key) moves to the new group.
Best regards
Blama
Comment