melomg
melomg

Reputation: 748

How can I get row value for each sap.m.select element

<m:Table id="tableId"
    inset="false"
    mode="MultiSelect"
    width = "100%"
    fixedLayout="false"
    border-collapse="collapse"
    items="{
        path: 'jsonViewModel>/results',
        sorter: {
            path: 'ProductId'
        }
    }">
    <columns>
        <Column
            minScreenWidth="Desktop"
            demandPopin="true">
            <Text text="Product No" />
        </Column>
        <Column
             minScreenWidth="Desktop"
             demandPopin="true"
             hAlign="Left">
             <Text text="Model" />
        </Column>...
    </columns>
    <items>
        <ColumnListItem>
             <cells>
                 <ObjectIdentifier
                     title="{jsonViewModel>ProductId}"/>
                 <Select id="selectId"
                     items="{
                         path: '/ModelList',
                         sorter: { path: 'Name' }
                     }">
                     <core:Item key="{modelId}" text="{Name}" />
                 </Select>...
            </cells>
        </ColumnListItem>
    </items>
</Table>   

First I have a jsonViewModel which is holding Products JSON array and also there is a ModelList service which gives me the list of models. So I should be able to fill some inputs(I didn't show other inputs cause I can retrive their values) and select model of products. But if I have 5 products I also have 5 select elements and I can't retrieve the select item for each rows(for each products). For example I can't retrieve the value with these codes in controller:

var oSelect = this.getView().byId("selectId");
var selectedItemObject = oSelect.getSelectedItem().getBindingContext().getObject();
var selectedModelName = selectedItemObject.Name;

Cause I have 5 select elements indeed and with these codes I can't retrieve every selected item object. Any help would be appreciated.

Upvotes: 1

Views: 2490

Answers (1)

Rahul Bhardwaj
Rahul Bhardwaj

Reputation: 2353

Cant we go through every row and then fetch the select control and then fetch the selectedItem? I mean,

var aItems = this.getView().byId("tableId").getItems();
for(var i =0;i<aItems.length;i++){
    var aCells = aItems[i].getCells();
    // I know select is at 0th cell, so I can use aCells[0].
    var rowSelectedKey = aCells[0].getSelectedItem().getKey();
    // once you have the selcetedKey, you can save them in a local array or //      model   and after the loop, you can work with them
}

Upvotes: 2

Related Questions