1) 需求:
项目需求在数据列表中实现:按住shift上下实现多选、单独上下键实现选中行上下移动。
2) 思路:
利用keydown事件实现,html代码:
<p-table (keydown)="OnKeyDownHandler($event)"><p-table>
3) 代码实现:
ts代码:
OnKeyDownHandler
OnKeyDownHandler(event): void {
// ↑
if (event.keyCode === 38) {
if (this.allowMultipleSelection) {
this.onHandlerUpMove(event.shiftKey);
} else {
this.selectedHandlerUpMove();
}
}
// ↓
if (event.keyCode === 40) {
if (this.allowMultipleSelection) {
this.onHandlerDownMove(event.shiftKey);
} else {
this.selectedHandlerDownMove();
}
}
// ↑↓←→
if (event.keyCode === 38 || event.keyCode === 40 ||
event.keyCode === 37 || event.keyCode === 39) {
event.preventDefault();
}
}
单选情况时,选中行的上下移动:
selectedHandlerUpMove() {
const tempItem = this.selectedFormInfo[0];
if (this.formListDataSorted[0] !== tempItem) {
const previousIndex = this.