表中的selectionChange
事件具有listItems
參數。如果長度大於1,則按下全選按鈕。要確定是否選中或取消選擇所有行,可以檢查相同事件的參數selected
。
onSelectionChanged: function(oEvent) {
//this will return true if more than 1 item was selected
var bSelectAll = oEvent.getParameter("listItems").length > 1
//this will return true if the rows were selected, false if they were deselected
var bSelected = oEvent.getParameter("selected");
if (bSelectAll && bSelected) {
//make a call to the backend to get all data
}
}
您還可以檢查選定項目的數量與表格中項目的數量。 oTable.getItems().length
將指示表中當前有多少物品。比較表格中的項目數量與所選項目的數量,會告訴您是否全部選中。
var bAll = oTable.getSelectedItems().length === oTable.getItems().length;
爲了進一步驗證,您可以使用OData服務的$count
功能找到在後端的項目總數,然後比較,以你的表數據。
var total;
oModel.read("/EntitySet/$count", {
success: function(response) {
total = response;
}
}
該表還具有growingFinished
事件中,你可以用它來確定是否所有行已經從後端或者不能檢索。
非常感謝,但我想使用表格的開箱即用多選功能,而不是建立一些自定義的東西。在多選模式下創建表格時,默認添加全選按鈕。我想知道該按鈕何時被選中。 –
好吧,我明白了,現在你知道該怎麼做了嗎? – Jaro