コントローラ上でnullデータをバインドするかどうかを確認しようとしています。データがnullの場合、バインドされたデータだけでなくラベルも表示する必要があります。コントロールにバインドされたテキストがヌルであることを確認してください。
以下は現在私のコードです。
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でない場合は、フォーマッタに問題はありません。しかし、nullの場合は、両方のmatrixCell1インスタンスの内容を破棄/削除することが重要です。以下のコードでは、matrixCell1コンテンツの追加は引き続き行われます。あなたは内部のFFコードを移動することができるかどう
...
formatter: function(matnr){
if (matnr !== ''){
return contract
} else{
matrixCell.destroyContent();
}
});
matrixCell1.addContent(control);
oMatNrRow1.addCell(matrixCell1);
vendorTable.addRow(oMatNrRow1);
わからない声明
matrixCell1.addContent(control);
oMatNrRow1.addCell(matrixCell1);
vendorTable.addRow(oMatNrRow1);
任意のアイデアが高く評価されている場合。
両方のコントロールのvisibleプロパティをmatnrにバインドするほうが、もっと簡単になります: 'control.bindProperty(" visible "、{path:" matnr "、formatter:function(matnr){return !! matnr; }}); '。本当にコントロールを破壊する必要がありますか? – schnoedel
問題の回避策を見つけましたが、これも試してみます。これを共有していただきありがとうございます。 – melai