我尝试使用PRIMENG中的Table-CRUD,但是,与示例一样,我遇到了同样的问题。即使我关闭对话框,选择也会继续。 关闭对话框后,我想清除该选择。 我什至尝试使用Table类中的@ViewChild引用。
@ViewChild('dtUserEmp') table: Table;
TagID
<p-table #dtUserEmp selectionMode="single"
[(selection)]="usuarioEmpresaSelection"
(onLazyLoad)="lazyLoadingNat($event)"
(onRowSelect)="rowSelect($event)"
(onRowUnselect)="rowUnselect($event)"
dataKey="empresa"...>... </p-table>
我关注的文档中的链接: https://www.primefaces.org/primeng/#/table/crud
答案 0 :(得分:1)
这不是最佳方法,但是我可以告诉您如何实现此目标的方法。以后,您可以以更好的方式进行操作。您还会在控制台中看到一些错误,但是可以轻松处理它们,并且不会破坏您的应用程序。 因此,让我们打破您的要求,如下所示:
现在,无论何时单击任何行类,都会添加 ui-state-highlight 。因此,关键是每当我们单击保存时都删除此类。
假设下面是我的表,并且我已经给出#dd作为对此表的引用。
<p-table #dd [columns]="cols" [value]="cars"
selectionMode="multiple"
[(selection)]="selectedCars2"
[metaKeySelection]="true">
...
</p-table>
现在,只要调用保存按钮,只需在其中传递 dd 即可,也可以将 dd 用作组件中的@ViewChild。
<button (click)="save(dd)">Save</button>
or
import { Table } from '../../../../node_modules/primeng/components/table/table';
export class TableComponent{
@ViewChild('dd') dd: Table;
save(){
}
}
现在在保存功能内的组件文件中执行以下操作: 在这里您可以找到所有行 e.tableViewChild.nativeElement.children [2] .children
save(e:any){
let element = e.tableViewChild.nativeElement.children[2].children;
for(let key in element){
(element[key].classList).remove('ui-state-highlight');
}
}
这将从表中的行中删除该类。 您可以打印该值,并可以尝试动态获取子项的值[2]。我将其硬编码为2。您需要搜索 body 。我希望这个位置固定在桌子上。因此,硬编码将在任何地方工作。虽然可以使它动态。