检查绑定到控件的文本是否为空

时间:2016-04-15 15:30:26

标签: sapui5

我试图检查我是否在控制器上绑定了空数据。如果数据为空,我不需要显示标签以及绑定数据。

以下是我的代码。

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

任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

我还建议用户使用visible属性。 你知道UI5的条件绑定吗?使用它们在这种情况下根本不需要格式化程序。 see

答案 1 :(得分:0)

找到解决我的问题的方法。这是一个简单的if else条件。对于if语句,我只添加了数据[j] .matnr。有效!我还注意到这就是SAP如何实现行为的方式,例如oSearchViewData.description。