2016-08-10 2 views
0

Ich versuche, Statuswerte 0,1 in Smart Table in Symbole mit Formatierung zu konvertieren. Bisher habe ich die benutzerdefinierte Spalte erstellt und mit OData gefüllt und in Smart Table eingefügt.So ändern Sie Text für Symbol in Smarttabelle SAPUI5

Hier ist mein Code in XML-Ansicht für Spalte Gewohnheit:

</Column> 
</columns> 
<items> 
<ColumnListItem> 
<cells> 
    <ObjectStatus 
text="{Status}" state="{path: 'Status', formatter: '.status'}" /> 
</cells> 
</ColumnListItem> 
</items> 
</Table> 

Und das ist mein Controller:

status : function(Status){ 
    if (Status === "0"){return new sap.ui.core.IconPool.getIconURI("sap-icon://accept"); 
    } 
    else {return new sap.ui.core.IconPool.getIconURI("sap-icon://decline"); 
    } 
    }, 

Und ich habe diesen Fehler in Chrom Debugger Error screenshot

Antwort

1

Icons sind soll mit der Eigenschaft icon, nicht state an die ObjectStatus Steuerung übergeben werden. Die state-Eigenschaft sollte einen Zeichenfolgen-/Textwert enthalten, der als textuelle Bezeichnung verwendet wird.

Der Formatierer könnte auch viel einfacher sein. Stattdessen URI zugeben, können Sie das Symbol Urls als Strings übergeben:

status: function(Status) { 
    if (Status === "0") { 
     return "sap-icon://accept"; 
    } else { 
     return "sap-icon://decline"; 
    } 
} 
+0

Vielen Dank für Ihre Hilfe @jpenninkhof. Du hattest recht, ich habe eine Lösung gefunden und sie hier gepostet. –

1

Diese Lösung ist Ihr Statuswert 0,1,2 in benutzerdefinierten Spalte von Smart-Tabelle ändern Symbole sapui5.

View.xml

<items> 
<ColumnListItem > 
<cells> 
<ObjectStatus icon="{path: 'Status', formatter: '.status'}" /> 
</cells> 
</ColumnListItem> 
</items> 

Und controller.js

status: function(Status) { 
    if (Status === "0") { 
     return "sap-icon://status-error"; 
    } 
    if(Status === "1"){ 
     return "sap-icon://status-positive"; 
    } 
    if(Status === "2"){ 
     return "sap-icon://status-critical"; 
    } 
}, 
Verwandte Themen