2016-08-10 3 views
0

スマートテーブルのステータス値0,1をフォーマッタのアイコンに変換しようとしています。これまではカスタム列を作成し、それをODataで作成してスマートテーブルに挿入しました。スマートテーブルSAPUI5のアイコンのテキストを変更する方法

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

アイコンがあるクロームデバッガでこのエラーを得た:

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

そして、これは私のコントローラである:ここでは

は、カスタム列のXMLビューに私のコードですiconというプロパティを使用してObjectStatusコントロールに渡され、stateではありません。 stateプロパティには、テキストラベルとして使用される文字列/テキスト値が含まれている必要があります。

フォーマッタの方がずっと簡単です。代わりにURIのを渡すには、文字列として、アイコンのURLを渡すことができます。

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

あなたの助けの@jpenninkhofいただきありがとうございます。あなたは正しかった、私は解決策を見つけてここに掲示した。 –

1

これは、アイコンをsapui5スマート表のカスタム列内の自分のステータス値0,1,2を変更するためのソリューションです。

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"; 
    } 
}, 
関連する問題