UI5表中的条件列值

时间:2018-06-25 05:16:02

标签: sapui5

我在表中有一列,其值绑定到数据模型的属性。 text = { modelName>/OrderNo}。如何基于标志使其有条件?如果来自模型isReturnable = true的属性,我想显示text = {modelName>/ReturnNo},否则我想显示{OrderNo}。如何为此构建语法?

<table:Column>
<Label class="smartist-table-column-header" text="Qty Returned"/>
<table:template>
<Text text="{ path: 'OrderDetail>OrderNo'}"/>
</table:template>
</table:Column>  

2 个答案:

答案 0 :(得分:4)

您可以使用表达式绑定。 有关详细信息,请参见URL:https://ui5.sap.com/#/topic/daf6852a04b44d118963968a1239d2c0

解决问题的方法:

<Text text="{= ${modelName>isReturnable} ? ${modelName>/ReturnNo} : ${OrderDetail>OrderNo}}" />

答案 1 :(得分:1)

由于表达式绑定将是解决此问题的更合适的方法, 自定义格式也可以是实现此目的的一种方法。

在视图中:

<Text text= "{      parts:[
                        {path: "modelName>isReturnable"},
                        {path: "modelName>ReturnNo"},
                        {path: "modelName>OrderNo"}, 

                     ],                        

                    formatter: '.formatOrderNo'
            }"/>

在相应的控制器中

formatter: function(isReturnable, sReturnNo, sOrderNo){ 

       if(isReturnable == true){
           return sReturnNo;
       }else{
           return OrderNo;
       }

}

在更复杂的逻辑中,需要在绑定之前对字段执行一些计算/操作,自定义格式是必经之路。 Custom Formatters in SAPUI5