2020-10-28 12:39 | 题主 | ||||||||
|
Wb.mask在自动列宽函数之后才生效 参考示例得到了一个自适应列宽的函数如下: /** *列宽根据内容自适应*/ autoSize: function(grid) { var cols = grid.columns, i, j = cols.length; Ext.suspendLayouts(); for (i = 1; i < j; i++) { if (cols[i].autoSize) { cols[i].autoSize(); cols[i].setWidth(cols[i].width + (Wb.isNeptune ? 15 : 10)); } } Ext.resumeLayouts(true); } 将上述函数放在app初始化init函数中 应用时,在某个grid的上面加了一个"自动列宽"按钮 在按钮上click事件 var tempgrid = app.grid1; Wb.mask(tempgrid, null, 0); if (tempgrid && tempgrid.columns) { app.autoSize(tempgrid); Wb.unmask(tempgrid); } 发现mask在自动列宽之后才显示,然后瞬间消失。 请问大家: 1是不是因为autoSize函数中存在Ext.suspendLayouts()的原因 2如何在自动列宽开始就显示mask 然后列宽自适应处理结束后在取消mask? |
2020-10-29 09:26 | #1 | ||||||||
|
suspendLayouts()后所有渲染将停止执行 可以把mask放到setTimeout(fn, 0) |