我试图检查我是否在控制器上绑定了空数据。如果数据为空,我不需要显示标签以及绑定数据。
以下是我的代码。
var oMatNrRow1 = new sap.ui.commons.layout.MatrixLayoutRow();
control1 = new sap.ui.commons.Label({
text : Appcc.getText("MATERIAL_NO") + ":"
});
matrixCell1 = new sap.ui.commons.layout.MatrixLayoutCell();
matrixCell1.addContent(control1);
control = new sap.ui.commons.Label();
control.bindProperty("text", "matnr");
matrixCell1.addContent(control);
oMatNrRow1.addCell(matrixCell1);
vendorTable.addRow(oMatNrRow1);
我已经尝试过control.getProperty(" text")但是如果matnr不为null,它只返回一个数字时返回null。
我也试过格式化程序。如果matnr不为null,我对formatter没有任何问题。但如果它为null,则重点是销毁/删除matrixCell1实例的内容。在下面的代码中,添加matrixCell1内容仍将继续推进。
...
formatter: function(matnr){
if (matnr !== ''){
return contract
} else{
matrixCell.destroyContent();
}
});
matrixCell1.addContent(control);
oMatNrRow1.addCell(matrixCell1);
vendorTable.addRow(oMatNrRow1);
不确定是否可以在if语句
中移动ff代码matrixCell1.addContent(control);
oMatNrRow1.addCell(matrixCell1);
vendorTable.addRow(oMatNrRow1);
任何想法都表示赞赏。
答案 0 :(得分:1)
我还建议用户使用visible属性。 你知道UI5的条件绑定吗?使用它们在这种情况下根本不需要格式化程序。 see
答案 1 :(得分:0)
找到解决我的问题的方法。这是一个简单的if else条件。对于if语句,我只添加了数据[j] .matnr。有效!我还注意到这就是SAP如何实现行为的方式,例如oSearchViewData.description。