今天遇到个问题 发现handsontable隐藏后进行渲染,再打开的时候handsontable显示出现问题
如图:
图中表头没了,前台也没有报错。
这个时候需要从新渲染
$("#preparation_collapse").click(function () {
setTimeout(function () {
// 这里就是处理的事件
if (localWorkPreparationVue.localWorkPreparationData != null && localWorkPreparationVue.localWorkPreparationData.length > 0) {
localWorkPreparationVue.$refs.relshingoHot.hotInstance.render();//从新渲染
}
}, 200);
});
加了延迟确保handsontable在打开后从新渲染,防止table没有显示前就提前渲染完了导致画面没变化。
如果handsontable在v-for中循环导致ref属性重复
可以加个循环
for (i = 0; i < localWorkReleaseVue.$refs.hottable.length; i++) {
localWorkReleaseVue.$refs.relshingoHot[i].hotInstance.render();
}
另附前台代码
<div class="col-md-12" style="overflow: auto;">
<hot-table id="relshingoHot" ref="relshingoHot" :data="localWorkPreparationData" :settings="localWorkPreparationSettings"></hot-table>
</div>