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();