今天刚遇到这个问题,找了下各群的深度合作伙伴,没有好的答案,那就自己研究吧。
问题点在于打开tab1时,快速切到tab2,这时tab1的datagrid渲染未完成,再次回到tab1,因为是在不可见区域完成的渲染,所以datagrid的窗体计算size时给的height为0。
解决思路:在tab重获焦点时,对datagrid resize一次。
在tabs的onSelect里注册事件,事件里面的代码:
try {
$(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe")[0].contentWindow.resizeDT();
} catch (_e) {
let _eeee = _e;
}
所有tab子页面插入此方法:
function resizeDT() {
$(".datagrid-f").each(function (i, x) {
try {
$("#" + $(x).prop('id')).datagrid('resize');
} catch (e) {
}
})
return true;
}