我正在使用名称空间中的Table对象SAPUI5's sap.ui.table:
var oTableOverview = new sap.ui.table.Table();
在上rowSelectionChange,当我选择一行时,我填充了另一张表,我们称它为oTableDetail,其中已填充了一些数据。
当从第一个表中取消选择该行时,我想清除第二个表的内容,为此,我使用了:
oTableDetail.destroyColumns();
oTableDetail.unbindRows();
取消选择行时,出现以下错误:
TableRenderer.js:6未捕获的TypeError:无法读取未定义的属性“ shouldRender”
我找到了方法shouldRender的的sap.ui.table.Column类,但我不知道为什么会在细胞在这种情况下重新呈现。
我还注意到,如果我单独使用oTable.destroyColumns()或,则不会出现该错误。oTable.unbindRows()
我正在使用SAPUI5的“ 1.38.11”版本。
您能帮我确定为什么会这样吗?
编辑1:可能的解决方法是使用:
oTableDetail.setModel(new sap.ui.model.json.JSONModel({}));
oTableDetail.destroyColumns();
尽管我仍然不知道为什么前面提到的代码无法正常工作。
编辑2:我觉得有点奇怪的行为:
试图添加一个setTimeout像这样工作(错误没有发生):
oTable.destroyColumns();
setTimeout(function(){oTable.unbindRows();},50);
但是,即使延迟时间更长,也无法通过其他方式运行(错误仍然出现):
oTable.unbindRows();
setTimeout(function(){oTable.destroyColumns();},50);