Hi Isomorphic,
please see this modified sample (v12.1p_2022-08-24, as I want to switch to 12.1p, but also current 12.0p, 13.0p).
The testcase has more buttons than it needs. I found out only while building it according to my app, that the issue is actually related to groupByMaxRecords and only then to implicitCriteria (normal filterRow is working fine).
Also, if you remove groupByMaxRecords, everything regarding implicitCriteria-changes is fine.
Steps to reproduce (Win10/FF 103, Chromium 103):
Blama
please see this modified sample (v12.1p_2022-08-24, as I want to switch to 12.1p, but also current 12.0p, 13.0p).
The testcase has more buttons than it needs. I found out only while building it according to my app, that the issue is actually related to groupByMaxRecords and only then to implicitCriteria (normal filterRow is working fine).
Also, if you remove groupByMaxRecords, everything regarding implicitCriteria-changes is fine.
Steps to reproduce (Win10/FF 103, Chromium 103):
- Start (starts with criteria for all continents, 216 rows, more than the configured 175 for groupByMaxRecords)
- Click "inSet: AS..." (without Africa)
- Note that the ListGrid does not load new data (unexpected)
- Hover the ListGrid body
- Turn the mouse wheel down
- Note that the ListGrid does only now load new data with the new implicitCriteria
- Repeat with different implicitCriteria
Blama
Code:
isc.ListGrid.create({ ID: "filterGrid", width: 850, height: 500, alternateRecordStyles: true, dataSource: worldDS, autoFetchData: true, groupByField: "continent", groupStartOpen: "all", sortField: "continent", groupByMaxRecords: 80, sortByGroupFirst: "true", implicitCriteria: { _constructor: "AdvancedCriteria", operator: "and", criteria: [{ fieldName: "continent", operator: "inSet", value: ["Africa", "Asia", "Australia/Oceania", "Europe", "North America", "South America"] }] }, fields: [{ name: "countryCode", width: 60 }, { name: "government", }, { name: "continent", }, { name: "capital", }, { name: "independence", width: 100 }, { name: "population", width: 100 }, { name: "gdp", width: 85 }] }); // Implicit criteria Buttons isc.IButton.create({ ID: "europeAsiaBtn", width: 250, title: "inSet: AF/AS/AU/EU/NA/SA (=all)", click: function() { filterGrid.setImplicitCriteria({ _constructor: "AdvancedCriteria", operator: "and", criteria: [{ fieldName: "continent", operator: "inSet", value: ["Africa", "Asia", "Australia/Oceania", "Europe", "North America", "South America"] }] }); } }); isc.IButton.create({ ID: "europeAsiaAusBtn", width: 250, title: "inSet: AS/AU/EU/NA/SA", click: function() { filterGrid.setImplicitCriteria({ _constructor: "AdvancedCriteria", operator: "and", criteria: [{ fieldName: "continent", operator: "inSet", value: ["Asia", "Australia/Oceania", "Europe", "North America", "South America"] }] }); } }); isc.IButton.create({ ID: "allCtnBtn", width: 250, title: "All continents (null criteria)", click: function() { filterGrid.setImplicitCriteria(null); } }); isc.HStack.create({ ID: "criteriaBtnStack", membersMargin: 30, height: 1, members: [ isc.Label.create({ contents: "Implicit Criteria:", height: 1 }), europeAsiaBtn, europeAsiaAusBtn, allCtnBtn ] }); // Filter criteria Buttons isc.IButton.create({ ID: "showFilterRowBtn", width: 250, title: "Show filterRow", click: function() { filterGrid.setShowFilterEditor(true); } }); isc.IButton.create({ ID: "hideFilterRowBtn", width: 250, title: "Reset fR + hide: setFEdCrit(null) + fetchData()", click: function() { filterGrid.setFilterEditorCriteria(null); filterGrid.setShowFilterEditor(false); filterGrid.fetchData(); } }); isc.IButton.create({ ID: "resetFilterRowBtn", width: 250, title: "Reset fR: setFEdCrit(null) + fetchData()", click: function() { filterGrid.setFilterEditorCriteria(null); filterGrid.fetchData(); } }); isc.IButton.create({ ID: "resetFilterBtn", width: 250, title: "Reset fR: filterData(null)", click: function() { filterGrid.filterData(null); } }); isc.HStack.create({ ID: "filterBtnStack", height: 1, membersMargin: 30, members: [ isc.Label.create({ contents: "Filter:", height: 1 }), showFilterRowBtn, hideFilterRowBtn, resetFilterRowBtn, resetFilterBtn ] }); isc.VStack.create({ membersMargin: 30, members: [ criteriaBtnStack, filterBtnStack, filterGrid ] });
Comment