2016-04-15 4 views
0

Ich versuche zu überprüfen, ob ich Nulldaten auf einem Controller binde. Wenn die Daten null sind, muss ich die Beschriftung sowie die verknüpften Daten nicht anzeigen.Überprüfen, ob mit einem Steuerelement verknüpfter Text null ist

Unten ist mein Code jetzt.

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

Ich habe control.getProperty versucht („text“), aber es gibt nur null, wenn es sollte eine Nummer haben zurück, wenn matnr nicht null ist.

Ich versuchte auch Formatierer. Ich werde kein Problem mit Formatierer haben, wenn Matnr nicht Null ist. Aber wenn es null ist, ist der Punkt, den Inhalt beider matrixCell1-Instanzen zu zerstören/zu löschen. In meinem unten stehenden Code wird sich der Zusatz von matrixCell1 noch durchsetzen.

... 
formatter: function(matnr){ 
    if (matnr !== ''){ 
     return contract 
    } else{ 
     matrixCell.destroyContent(); 
    } 
}); 

matrixCell1.addContent(control); 
oMatNrRow1.addCell(matrixCell1); 
vendorTable.addRow(oMatNrRow1); 

Nicht sicher, ob Sie die ff-Code innerhalb bewegen kann, wenn Anweisung

matrixCell1.addContent(control); 
oMatNrRow1.addCell(matrixCell1); 
vendorTable.addRow(oMatNrRow1); 

Alle Ideen sind willkommen.

+1

Es wäre einfacher, die sichtbare Eigenschaft beider Steuerelemente wie folgt an die matnr zu binden: 'control.bindProperty (" visible ", {Pfad:" matnr ", Formatierer: Funktion (matnr) {return !! matnr; }}); '. Müssen Sie wirklich die Kontrollen zerstören? – schnoedel

+0

Obwohl ich einen Workaround zu meinem Problem gefunden habe, werde ich das auch versuchen. Danke für das Teilen. – melai

Antwort

1

Ich würde auch vorschlagen, die sichtbare Eigenschaft zu verwenden. Kennen Sie die bedingte Bindung von UI5? Mit ihnen brauchen Sie in diesem Fall den Formatierer überhaupt nicht. see

+0

Vielen Dank für das Teilen. Wird es überprüfen. – melai

0

Eine Problemumgehung für mein Problem gefunden. Es war eine einfache, wenn auch sonst Bedingung. Für die if-Anweisung habe ich einfach Daten [j] .matnr hinzugefügt. Es funktionierte! Ich bemerkte auch, dass SAP so das Verhalten auch z. oSearchViewData.description.