【发布时间】:2017-09-19 13:36:23
【问题描述】:
我在我的一个组件的 p-dialog 中显示了一个 p-datatable。如果用户之前从该表中选择了几行,我需要在用户下次访问 p-dialog 时显示它们已选择。
我将一组选定项目传递给 p 数据表的 selection 属性。但是,屏幕上未显示选中的行。
如果我重新选择相同的行,我会在selection 属性中获得两次,这意味着预先选择的行正确地保留在selection 属性中,但不知何故未绑定到html。
我试图将整个 p-dialog 包装在 *ngIf 中,希望它仅在收到数据后创建,但没有任何区别。
如何将选定的行绑定到 p 数据表。
<div *ngIf="data && data.length" class="col-sm-12">
<p-dataTable #ListRef [value]="data" rowHover="true" [multiSortMeta]="multiSortMeta" (onRowSelect)="onSelect($event)" [(selection)]="selectedData" (onRowUnselect)="onUnSelect($event)">
<p-column field="launchDate" header="Launch Date" [sortable]="true"></p-column>
<p-column field="endDate" header="End Date" [sortable]="true"></p-column>
</p-dataTable>
</div>
我还尝试使用ViewChild 获取引用并将值分配给那里的selection 属性。那也没什么区别。
然而,我注意到如果我的 ngOnInit 方法中已经有 data 和 selectedData 可用,则问题不会出现。
有什么想法吗?
【问题讨论】:
-
如何将一组选定项目传递给选择属性“selectedData”?分配后视图可能不会刷新。我建议尝试使用扩展运算符而不是推送。
-
我只是将数组分配给
selection属性。
标签: angular datatable primeng primeng-datatable