我需要一个单元格可编辑表,键盘导航将跳过某些单元格,但是如果用户单击它们,我需要这些单元格是可编辑的。
共有3栏。当用户从列的最后一个可编辑字段中跳出时,我要添加新行,并将编辑器放在新行的第3个可编辑列中。跳过第1行和第2行。但是他们仍然可以返回并对其进行编辑。
任何有关如何使用prime-ng表API完成此操作的提示将不胜感激。
答案 0 :(得分:0)
您可以在第三列的input
模板上处理keydown事件,像这样
<ng-template pTemplate="input">
<input pInputText type="text" [(ngModel)]="rowData.field_3" (keydown.tab)="onTabPress($event, i)">
</ng-template>
然后在ts文件中,通过最简单的方法或您自己的方式
将新行添加并聚焦到第三个单元格onTabPress(e, i) {
if (i == this.data.length - 1) {
this.data.push({
field_1: '',
field_2: '',
field_3: ''
});
setTimeout(() => {
$('tr').eq(i + 2).find('td').eq(2).click();
});
}
}
我创建了一个演示here。希望有帮助