My solution was to hook into the panels onLoad() event and call the panels resize() method. This seems to trigger the redraw of the panel and thus shows the grid (NB I tried refresh() but this did not work). Also the onLoad() event only gets called once (per panel), not every time I expand it. There does not appear to be any adverse affects in the other browsers.
Code:
...
function fixForIE(id) {
$('#aa').accordion('getPanel', id - 1).panel('resize');
};
$(document).ready(function () {
...
for (var group in productGroups) {
var p = $('#aa').accordion('add', {
title: group + '<span style=\'float:right;margin-right:10px;\'>' + productGroups[group].length + '</span>',
content: '<div style="padding:10px"></div>',
selected: false
});
$('#aa').accordion('getPanel', $('#aa').accordion('panels').length - 1).panel({
id: $('#aa').accordion('panels').length,
href: 'Products?index=' + ($('#aa').accordion('panels').length - 1),
onLoad: function () { fixForIE(parseInt(this.id)); }
});
}
...
});
I am using jQuery 3.5.1 and jQuery EasyUI 1.9.7