Javascript SAPUI5表格:未绑定&;destroyColumns导致错误:无法读取属性';应呈现';未定义的

Javascript SAPUI5表格:未绑定&;destroyColumns导致错误:无法读取属性';应呈现';未定义的,javascript,sapui5,Javascript,Sapui5,我正在使用SAPUI5的sap.ui.Table命名空间中的Table对象: var oTableOverview=new sap.ui.table.table() 在rowSelectionChange上,当选择一行时,我填充另一个表,我们称之为oTableDetail,它填充了一些数据 从第一个表中取消选择行时,我希望清除第二个表的内容,为此,我使用: oTableDetail.destroyColumns() oTableDetail.unbindRows() 取消选择该行时,我会出现以下

我正在使用
SAPUI5的sap.ui.Table
命名空间中的
Table
对象:

var oTableOverview=new sap.ui.table.table()

rowSelectionChange
上,当选择一行时,我填充另一个表,我们称之为
oTableDetail
,它填充了一些数据

从第一个表中取消选择行时,我希望清除第二个表的内容,为此,我使用:

oTableDetail.destroyColumns()

oTableDetail.unbindRows()

取消选择该行时,我会出现以下错误:

TableRenderer.js:6未捕获类型错误:无法读取未定义的属性“shouldRender”

我发现
sap.ui.table.Column
类的方法
shouldRender
,但我不确定在这种情况下为什么单元格会重新排序

我还注意到,如果单独使用
oTable.destroyColumns()
,或
oTable.unbindRows()
,则不会出现错误

我使用的是SAPUI5的“1.38.11”版本

你能帮我确定为什么会发生这种情况吗

编辑1:可能的解决方法是使用:

setModel(新的sap.ui.model.json.JSONModel({}))

oTableDetail.destroyColumns()

虽然我仍然不知道为什么前面提到的代码不起作用

编辑2:我觉得有点奇怪的行为:

尝试像这样添加setTimeout有效(错误未发生):

oTable.columns()

setTimeout(函数(){oTable.unbindRows();},50)

但从另一个角度看,即使延迟更长,它也不起作用(错误仍然出现):

可旋转。未绑定()

setTimeout(函数(){oTable.destroyColumns();},50)

您不需要实际删除列或取消绑定行。
将处理新数据。

因此,如果您不想设置新模型,请尝试清除现有模型的oData

var oTable = this.byId("oTable")
//your model with new dynamic data
var oModel = oTable.getModel();

oModel.setData(null);
// then if its needed, use updateBindings method to refresh
oModel.updateBindings();

Alina,尝试使用第一个oTable.unbindRows()和第二个oTable.destroyColumns().Jaro,谢谢你的建议!我试过了,但不幸的是错误仍然出现。谢谢你的建议。。。我真正需要的不是为表设置另一个模型,而是清空它,或者取消绑定行。当我从上面的表中取消选择行时,我不需要看到它下面的表中的任何内容。在data和rerender()中设置空数组,rest让框架处理。
var oTable = this.byId("oTable")
//your model with new dynamic data
var oModel = oTable.getModel();

oModel.setData(null);
// then if its needed, use updateBindings method to refresh
oModel.updateBindings();