sapui5 ui table如何通过取消选中行复选框来取消选择行

时间:2018-04-09 11:51:42

标签: javascript sapui5

我在UI表中面临一个小问题。如果我们取消选中行的复选框,我们如何删除所选行?要使用下面的代码获取行数据,它可以正常工作而没有任何问题。

enter image description here

getEnterDetailCount:function(oEvent){
            var oRowContext = oEvent.getParameter("rowContext");
            var oContextObject = oRowContext.getObject();
            roomsArray.push(oContextObject);
        };

使用上述方法,如果我选择了能够获得完整行数据的行。 但是,如果我取消选择该行,它仍在考虑作为行选择并且计数正在增加。

在XML中使用 rowSelectionChange 事件检查并取消选中行上的复选框

有人可以帮我解决这个问题吗? 提前谢谢。

此致 Pavantej

1 个答案:

答案 0 :(得分:0)

对于 sap.m.table ,您可以使用getSelectedItems从表中获取所有选定的行。循环所有选定的行并将它们放入数组中。

getEnterDetailCount:function(oEvent){
  var oContextObject;
  var roomsArray = [];
  var oTable = this.getView().byId("myTable");
  var aSelectedItems = oTable.getSelectedItems();

  aSelectedItems.forEach( function(v,i){
     oContextObject = v.getBindingContext().getObject();
     roomsArray.push(oContextObject);
  });
};

对于 sap.ui.table ,您可以使用getSelectedIndices()

getEnterDetailCount:function(oEvent){
  var oContextObject;
  var roomsArray = [];
  var oTable = this.getView().byId("myTable");
  var aSelectedIndices = oTable.getSelectedIndices();

  aSelectedIndices.forEach( function(v,i){ 
     oContextObject = oTable.getContextByIndex(v).getObject();
     roomsArray.push(oContextObject);
  });
};