我在我的一个组件中的p对话框中显示了一个p-datatable。如果用户之前从该表中选择了几行,我需要在用户下次访问p对话框时显示它们。
我将一些选定项目传递给p-datatable的selection
属性。但是,屏幕上未显示选定的行。
如果我重新选择相同的行,我会在selection
属性中得到它们两次,这意味着预先选择的行正确地保存在selection
属性中,但不知何故没有绑定到{{1} }}
我试图将整个p对话框包装在html
中,期望只有在收到数据后才创建它,但它没有任何区别。
如何将选定的行绑定到p-datatable。
*ngIf
我还尝试使用<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
方法中已data
和selectedData
已经可用,则问题就不会出现。
有什么想法吗?
答案 0 :(得分:0)
虽然我最初错过了它,但我后来发现有一个属性dataKey
,可以将其分配用于将所选行与总行进行比较。这对我有用。唯一的变化是分配一个字段名称以唯一匹配行
<p-dataTable #fundListRef [value]="data" rowHover="true" [(selection)]="selectedData" (onRowSelect)="onFundSelect($event)" (onRowUnselect)="onFundUnSelect($event)"
dataKey="id">
p-datatable文档说它使用的地图比较在某种程度上对我的情况不起作用。