我尝试将智能表中的状态值0,1转换为带格式化程序的图标。到目前为止,我创建了Custom列并使用OData填充它并插入Smart Table。
以下是我在自定义列的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");
}
},
我在chrome调试器Error screenshot
中遇到此错误答案 0 :(得分:1)
图标应该使用属性ObjectStatus
传递到icon
控件,而不是state
。 state
属性应包含字符串/文本值,该值将用作文本标签。
格式化程序也可以简单得多。您可以将图标网址作为字符串传递,而不是传递URI:
status: function(Status) {
if (Status === "0") {
return "sap-icon://accept";
} else {
return "sap-icon://decline";
}
}
答案 1 :(得分: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";
}
},