2016-10-17 32 views
1

是否可以在Aggregation类型绑定中使用表达式绑定。我有一个表,表中的每一行都有一个有sap.m.Select控件的列。我想根据行的属性将每行中的选择控件与不同的项绑定在一起。SAPUI5 - Aggregation绑定中的表达式绑定类型

下面是我的样品例如:

<Table headerText="Dimensions/Measures" mode="MultiSelect" includeItemInSelection="true" items="{path: 'dataModel>/Fields'}"> 
 
    <columns> 
 
    <Column hAlign="Center" vAlign="Center" visible="true"> 
 
     <header> 
 
     <Label text="Dimensions/Measures" /> 
 
     </header> 
 
    </Column> 
 
    <Column hAlign="Center" vAlign="Center" visible="true"> 
 
     <header> 
 
     <Label text="Type" /> 
 
     </header> 
 
    </Column> 
 
    <Column hAlign="Center" vAlign="Center" visible="true"> 
 
     <header> 
 
     <Label text="Role" /> 
 
     </header> 
 
    </Column> 
 
    </columns> 
 
    <ColumnListItem> 
 
    <Text text="{dataModel>Fieldname}" /> 
 
    <Text text="{= ${dataModel>Aggr_Oper} !== null ? 'Measure' : 'Dimension'}" /> 
 
    <Select items="{= ${path: 'dataModel>Aggr_Oper'} !== null ? ${dataModel>/chartConfigData/dimData}: ${dataModel>/chartConfigData/measData}}"> 
 
     <core:Item key="{dataModel>key}" text="{dataModel>text}" /> 
 
    </Select> 
 
    </ColumnListItem> 
 
</Table>

我的数据模型看起来如下:

{ 
 
    "Fields":[ 
 
     { 
 
     "AppID":"RP_PROP", 
 
     "AppVariantID":"PropListVariantDemo", 
 
     "Fieldname":"PropertyID", 
 
     "FieldDescription":"PropertyID", 
 
     "Aggr_Oper":null, 
 
     "Filterable":null, 
 
     "Visible":"true", 
 
     "Filter_Val":null, 
 
     "DisplayOrder":1, 
 
     "FieldGroup":null, 
 
     "SubTotal":null, 
 
     "FieldType":null, 
 
     "Sortable":"true", 
 
     "Sort_Op":"ASC", 
 
     "Sort_Order":1, 
 
     "ChartRole":null, 
 
     "BusinessEntity":"BRS" 
 
     }, 
 
     { 
 
     "AppID":"RP_PROP", 
 
     "AppVariantID":"PropListVariantDemo", 
 
     "Fieldname":"Description", 
 
     "FieldDescription":"Description", 
 
     "Aggr_Oper":null, 
 
     "Filterable":null, 
 
     "Visible":"true", 
 
     "Filter_Val":null, 
 
     "DisplayOrder":2, 
 
     "FieldGroup":null, 
 
     "SubTotal":null, 
 
     "FieldType":null, 
 
     "Sortable":"true", 
 
     "Sort_Op":null, 
 
     "Sort_Order":null, 
 
     "ChartRole":null, 
 
     "BusinessEntity":"BRS" 
 
     }, 
 
     { 
 
     "AppID":"RP_PROP", 
 
     "AppVariantID":"PropListVariantDemo", 
 
     "Fieldname":"PropertyTypeID", 
 
     "FieldDescription":"PropertyTypeID", 
 
     "Aggr_Oper":null, 
 
     "Filterable":null, 
 
     "Visible":"true", 
 
     "Filter_Val":null, 
 
     "DisplayOrder":3, 
 
     "FieldGroup":null, 
 
     "SubTotal":null, 
 
     "FieldType":null, 
 
     "Sortable":"true", 
 
     "Sort_Op":null, 
 
     "Sort_Order":null, 
 
     "ChartRole":null, 
 
     "BusinessEntity":"BRS" 
 
     }, 
 
     { 
 
     "AppID":"RP_PROP", 
 
     "AppVariantID":"PropListVariantDemo", 
 
     "Fieldname":"PropertyType", 
 
     "FieldDescription":"PropertyType", 
 
     "Aggr_Oper":null, 
 
     "Filterable":null, 
 
     "Visible":"true", 
 
     "Filter_Val":null, 
 
     "DisplayOrder":4, 
 
     "FieldGroup":null, 
 
     "SubTotal":null, 
 
     "FieldType":null, 
 
     "Sortable":null, 
 
     "Sort_Op":null, 
 
     "Sort_Order":null, 
 
     "ChartRole":null, 
 
     "BusinessEntity":"BRS" 
 
     }, 
 
     { 
 
     "AppID":"RP_PROP", 
 
     "AppVariantID":"PropListVariantDemo", 
 
     "Fieldname":"RegionID", 
 
     "FieldDescription":"RegionID", 
 
     "Aggr_Oper":null, 
 
     "Filterable":null, 
 
     "Visible":"true", 
 
     "Filter_Val":null, 
 
     "DisplayOrder":5, 
 
     "FieldGroup":null, 
 
     "SubTotal":null, 
 
     "FieldType":null, 
 
     "Sortable":null, 
 
     "Sort_Op":null, 
 
     "Sort_Order":null, 
 
     "ChartRole":null, 
 
     "BusinessEntity":"BRS" 
 
     }, 
 
     { 
 
     "AppID":"RP_PROP", 
 
     "AppVariantID":"PropListVariantDemo", 
 
     "Fieldname":"RegionDescription", 
 
     "FieldDescription":"RegionDescription", 
 
     "Aggr_Oper":null, 
 
     "Filterable":null, 
 
     "Visible":"true", 
 
     "Filter_Val":null, 
 
     "DisplayOrder":6, 
 
     "FieldGroup":null, 
 
     "SubTotal":null, 
 
     "FieldType":null, 
 
     "Sortable":null, 
 
     "Sort_Op":null, 
 
     "Sort_Order":null, 
 
     "ChartRole":null, 
 
     "BusinessEntity":"BRS" 
 
     } 
 
    ], 
 
    "chartConfigData":{ 
 
     "dimData":[ 
 
     { 
 
      "key":"val1", 
 
      "text":"val1" 
 
     }, 
 
     { 
 
      "key":"val2", 
 
      "text":"val2" 
 
     } 
 
     ], 
 
     "measData":[ 
 
     { 
 
      "key":"val3", 
 
      "text":"val3" 
 
     }, 
 
     { 
 
      "key":"val4", 
 
      "text":"val4" 
 
     } 
 
     ] 
 
    } 
 
}

回答

2

没有,动态绑定路径s是不可能的。有一些可能的解决方法但是:

  • 您可以处理您的模型数据,并添加一个参照适当选择项目列表中的每一行。在选择字段绑定中使用该引用的相对绑定路径。

  • 您可以使用factory function来创建表格的行。你可以把你的行模板,为dependant你的表和克隆它,并配置选择在工厂功能

  • 你可以用不同的绑定到你的表中的每一行中添加多个选择隐藏所有,但每行一个结合通过绑定选择的属性。

+0

谢谢schnoedel。由于行数有限,所以使用上面的工厂函数选项。 – Deepak