Skip to Content

MultiSelect Table - how to know which was the current item clicked/selected

Hi,

I have a MultiSelect table.

<Table id="idProductsTable" inset="false" mode="MultiSelect" selectionChange="onInvoiceSelectionChange" items="{ path: '/value', sorter: { path: 'DocNum' } }">

When an item is selected (or un-selected) the event triggers a function:

onInvoiceSelectionChange : function(oEvent) {...

I need to know which item was selected so I coded this.

var oCtx = oEvent.getSource().getSelectedItem().getBindingContext();
var path = oCtx.getPath();

This always returns the first (lowest) selected item in the list - not the current one: E.g. if paths are:

/value/0

/value/1

/value/2

If I select/click the first item and then the second item the path = "/value/0" BOTH TIMES!

I need to determine "/value/1" was the selection the second time.

There does not seem to be any property "current item clicked" in the oEvent or its child objects. Just the list of selected items with the "lowest" always returned as the path.

Thanks for any help.

Regards,

Mel

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    May 16 at 05:24 PM

    in selection change event handler write the below code

    onInvoiceSelectionChange: function(oEvent){
       var oSelectedItem = oEvent.getParameter("listItem");   //this gives currently selected/de-selected item
       var bSelected = oEvent.getParameter("selected");   //Boolean value - Indicates if the current item is selected or not
    
       var aSelectedItems = oEvent.getParameter("listItems");   //gives all the selected items
    }
    Add comment
    10|10000 characters needed characters exceeded

    • loop through aSelectedItems and check if item is selected or not..

      for(var in in aSelectedItems){
          if(aSelectedItems[i].getSelected()){
              //item is selected
          }else{
              //item not selected
          }
      }