Я строю таблицу с разбиением на страницы, которая обрабатывает некоторые действия на основе массива выбранных флажков;У меня есть документы и, что касается всего лишь выбора ВСЕХ строк всего по несколько штук, все хорошо;
Сценарий, к которому я пытаюсь приступить, заключается в следующем: Если мойPageSize
на моем paginator
равно «10», и я нажимаю masterToggle
, чтобы выбрать «все» строки, я хочу, чтобы все строки на текущей странице были выбраны, не более того, чтобы было 10 строккоторые отображаются с текущим значением PageSize
, однако при этом выбирается вся dataSource
таблицы, которая составляет около 300 записей.
Есть ли способ заставить masterToggle
выбирать только те строки, которыеотображаются в зависимости от размера страницы?Затем, если я изменю PageSize
на 20, останутся выбранными только первые 10.
Это мой код.
/** Whether the number of selected elements matches the total number of rows. */
isAllSelected() {
const numSelected = this.selection.selected.length;
const numRows = this.dataSource.data.length;
return numSelected === numRows;
}
/** Selects all rows if they are not all selected; otherwise clear selection. */
masterToggle() {
this.isAllSelected() ?
this.selection.clear() :
this.dataSource.data.forEach(row => this.selection.select(row));
}