2015-10-20 3 views
1

У меня есть multicomboBox, и я хочу связать multicomboBox со всеми ключами в json. iam с использованием представления XML. мне нужно multicomboBox со значениями как ProductID, название, категория, SupplierName ..as следующимSet MulticomboBox со всеми ключевыми элементами

мой взгляд XML является

<MultiComboBox selectionChange="handleSelectionChange" selectionFinish="handleSelectionFinish" width="300px" 
    items="{ 
        path: '/Collection', 
        sorter: { path: 'Name' } 
       }"> 

    <core:Item key="{ProductId}" text="{Name}" /> 
     </MultiComboBox> 

мой файл JSON

{ 
    "Collection": [ 
    { 
    "ProductId": "1", 
    "Name": "A", 
    "Category": "Projector", 
    "SupplierName": "Titanium", 
    "Description": "A very powerful projector with special features for Internet usability, USB", 
    "WeightMeasure": 1467, 
    "WeightUnit": "g", 
    "Price": 856.49, 
    "CurrencyCode": "EUR", 
    "Status": "Available", 
    "Quantity": 3, 
    "UoM": "PC", 
    "Width": 51, 
    "Depth": 42, 
    "Height": 18, 
    "DimUnit": "cm" 

    }, 
    { 
    "ProductId": "2", 
    "Name": "B", 
    "Category": "Graphics Card", 
    "SupplierName": "Technocom", 
    "Description": "Gladiator MX: DDR2 RoHS 128MB Supporting 512MB Clock rate: 350 MHz Memory Clock: 533 MHz, Bus Type: PCI-Express, Memory Type: DDR2 Memory Bus: 32-bit Highlighted Features: DVI Out, TV Out , HDTV", 
    "WeightMeasure": 321, 
    "WeightUnit": "g", 
    "Price": 81.7, 
    "CurrencyCode": "EUR", 
    "Status": "Discontinued", 
    "Quantity": 10, 
    "UoM": "PC", 
    "Width": 34, 
    "Depth": 14, 
    "Height": 2, 
    "DimUnit": "cm" 
    }, 
    { 
    "ProductId": "3", 
    "Name": "C", 
    "Category": "Graphics Card", 
    "SupplierName": "Red Point Stores", 
    "Description": "Hurricane GX: DDR2 RoHS 512MB Supporting 1024MB Clock rate: 550 MHz Memory Clock: 933 MHz, Bus Type: PCI-Express, Memory Type: DDR2 Memory Bus: 64-bit Highlighted Features: DVI Out, TV-In, TV-Out, HDTV", 
    "WeightMeasure": 588, 
    "WeightUnit": "g", 
    "Price": 219, 
    "CurrencyCode": "EUR", 
    "Status": "Out of Stock", 
    "Quantity": 25, 
    "UoM": "PC", 
    "Width": 34, 
    "Depth": 14, 
    "Height": 2, 
    "DimUnit": "cm" 
    }, 
    { 
    "ProductId": "4", 
    "Name": "D", 
    "Category": "Accessory", 
    "SupplierName": "Technocom", 
    "Description": "Web camera, color, High-Speed USB", 
    "WeightMeasure": 700, 
    "WeightUnit": "g", 
    "Price": 59, 
    "CurrencyCode": "EUR", 
    "Status": "Available", 
    "Quantity": 22, 
    "UoM": "PC", 
    "Width": 18, 
    "Depth": 19, 
    "Height": 21, 
    "DimUnit": "cm" 
    }, 
    { 
    "ProductId": "5", 
    "Name": "E", 
    "Category": "Accessory", 
    "SupplierName": "Technocom", 
    "Description": "Lock for Monitor", 
    "WeightMeasure": 40, 
    "WeightUnit": "g", 
    "Price": 13.49, 
    "CurrencyCode": "EUR", 
    "Status": "Available", 
    "Quantity": 30, 
    "UoM": "PC", 
    "Width": 11, 
    "Depth": 11, 
    "Height": 3, 
    "DimUnit": "cm" 
    } 
    ] 
} 

ответ

1

Я надеваю Не думаю, что можно делать то, что вы просите, не создавая новый объект данных, где ключи исходного объекта превратятся в значения.

Вот как бы я это сделать (хотя я и не использовать представления XML много):

<core:View 
    controllerName="local.controller" 
    xmlns:mvc="sap.ui.core.mvc" 
    xmlns:core="sap.ui.core" 
    xmlns="sap.m"> 
    <MultiComboBox width="300px" 
     items="{ 
     path: '/data', 
    }"> 

     <core:Item text="{value}" /> 
    </MultiComboBox> 
</core:View> 

В контроллере мы делаем новый объект и модель:

var oModelData={}; 
oModelData.data = []; 
for(var key in oData.Collection[0]){ 
    var oObj = {}; 
    oObj.value = key; 
    oModelData.data.push(oObj); 
} 

oView.setModel(new sap.ui.model.json.JSONModel(oModelData)); 

Вот рабочий пример JSBIN: LINK

+0

Я создал то же самое, но мне нужен ключ в comboBox, который является productId, Name, имя поставщика ... Я хочу, чтобы это не значения. –

+0

@sarathchambayil взгляните на обновленный ответ. Мне было непонятно, что именно вы хотите. Извини за это. – keshet

+0

Я создал еще один объект, как вы сказали, для ключей –

0

Возможно, это не так, но исходный код, который вы опубликовали, должен работать нормально. Что именно вы хотите?

Смежные вопросы