我在UI表中面临一个小问题。如果我们取消选中行的复选框,我们如何删除所选行?要使用下面的代码获取行数据,它可以正常工作而没有任何问题。
getEnterDetailCount:function(oEvent){
var oRowContext = oEvent.getParameter("rowContext");
var oContextObject = oRowContext.getObject();
roomsArray.push(oContextObject);
};
使用上述方法,如果我选择了能够获得完整行数据的行。 但是,如果我取消选择该行,它仍在考虑作为行选择并且计数正在增加。
在XML中使用 rowSelectionChange 事件检查并取消选中行上的复选框
有人可以帮我解决这个问题吗? 提前谢谢。
此致 Pavantej
答案 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);
});
};