2016-08-10 4 views
0

Я пытаюсь преобразовать значения состояния 0,1 в смарт-таблице в значки с форматированием. Пока я создал Custom column и заполнил его OData и вставил в Smart Table.Как изменить текст для значка в смарт-таблице SAPUI5

Вот мой код с точки зрения XML для пользовательского столбца:

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

И это мой контроллер:

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"); 
    } 
    }, 

И я получил эту ошибку в хромированной отладчик Error screenshot

ответ

1

Иконки предполагается передать в управление ObjectStatus, используя свойство icon, а не state. Свойство state должно содержать значение строки/текста, которое будет использоваться как текстовая метка.

Форматирование также может быть намного проще. Вместо передачи URI, вы можете передать значок URLs как строки:

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

Спасибо за вашу помощь @jpenninkhof. Вы были правы, я нашел решение и разместил его здесь. –

1

Это решение изменить статус значения 0,1,2 в пользовательской колонке смарт таблицы для sapui5 иконки.

View.xml

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

И 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"; 
    } 
},